Webpack - 不要为某个入口点输出包

Posted

技术标签:

【中文标题】Webpack - 不要为某个入口点输出包【英文标题】:Webpack - dont output a bundle for a certain entry point 【发布时间】:2017-07-11 14:21:05 【问题描述】:

我使用文件加载器自动将一堆 pug 模板渲染为静态 html 文件,但 webpack 也基于入口点输出了一个毫无意义的文件

例如,这是在我的 webpack.config.js 中:

entry: 
    'js/build/bundle.js': './js/app.js',
    'this-shouldnt-emit': './pug/.pug.js' //pug entry point
,

output: 
    path: path.join(__dirname, '../'),
    filename: '[name]'
,

...
// pug loading module rule
        
            test: /\.pug$/,
            include: path.resolve(__dirname, "../pug"),
            use: [
                "file-loader?name=[path][name].html&context=./pug",
                "pug-html-loader?pretty&exports=false"
            ]
        

我在根构建目录中获得了一个 this-shouldnt-emit 捆绑文件,这是我不想要的。

如何阻止文件加载器发出输出包,但又不干扰它生成当前的所有静态 html 文件。是否有一个插件或某种空加载器我可以放在加载器链的末尾来终止捆绑发射?

【问题讨论】:

简单的方法是在构建后删除它) 【参考方案1】:

我不确定您真正要问的是什么,但如果您希望它在一个包中包含多个文件,请使用数组。在filename: '[name].bundle.js 中使用[name] 的全部意义在于多个条目。一个输入键不是必需的(但可选)。

这将创建两个捆绑文件。

entry: 
   BUNDLE_KEY_ONE: 'path/file.js',
   BUNDLE_KEY_TWO: 'path/otherFile.js',

这就是你如何在一个包中拥有多个文件。

entry: 
   SINGLE_BUNDLE_NAME: ['file/one.js', 'file/two.js']

【讨论】:

以上是关于Webpack - 不要为某个入口点输出包的主要内容,如果未能解决你的问题,请参考以下文章

具有多个入口点的 Webpack watch() - 为未更改的文件发送捆绑包?

如何配置 webpack 4 以防止入口点列表中的块出现在任何其他包中?

Webpack 4 配置入口点和输出(每个项目文件夹中生成的dist文件夹)

获取 webpack 入口点名称并在 loader 中重用

Webpack,多个入口点 Sass 和 JS

Webpack 2 未解析 webpack.config.js 中的入口点