【问题标题】:Use webpack plugins without 'entry' index.js使用没有 'entry' index.js 的 webpack 插件
【发布时间】:2020-06-03 22:45:15
【问题描述】:

我正在使用 Webpack 将 dist 目录与特定于环境的配置 (manifest.json) 和文件结构组合起来

我的问题是 webpack 希望我有一个空的 src/index.js 文件

在某些环境中,编译发生在我组装 /dist 文件夹、压缩并上传到他们的服务之后。

有什么办法可以避免index.js 直接运行CopyWebpackPlugin

【问题讨论】:

    标签: javascript webpack


    【解决方案1】:

    我目前正在研究使用 manifest.jsonmanifest.js 作为此构建的条目,因为此文件是选项 HTML 应用程序、浏览器内容脚本、icon.png 等之间的连接

    CleanWebpackPluginHtmlWebpackPlugin 都给我带来了很多问题,似乎使用加载器可能是正确、纯粹、同步的方法

    My current inspiration 使用简单的module.exportsarguments[0] source from the previous loader 轻松转换源


    我确实想出了一个破解(不可维护)的解决方案来删除未使用的文件,这可能对某人有用。

    webpack.config.js

    module.exports = {
      name: 'manifest',
      entry: {
        manifest: './src/manifest.json',
      },
      output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'DELETED.js',
      },
      plugins: [
        new CopyWebpackPlugin({
          patterns: [
            {from: './src/manifest.json'},
            {from: './assets/images/icon.png'},
          ],
        }),
        new RemoveFilesWebpackPlugin({
          before: {
            log: false,
            include: [
              'dist',
            ],
          },
          after: {
            log: false,
            include: [
              'dist/DELETED.js',
            ],
          },
        }),
      ],
      mode: 'none',
    }
    

    这个想法的问题是manifest.json 没有被用来收集它自己的资产——资产是在这个捆绑器的配置中声明的。


    我还有两个额外的 webpack.config.js 文件用于

    1. 使用HtmlWebpackPlugin生成一个HTML选项页面
    2. 捆绑主脚本

    但如前所述,维护需要挖掘构建文件,而不仅仅是编辑源代码并需要相对路径

    【讨论】:

      猜你喜欢
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      相关资源
      最近更新 更多