【问题标题】:Running Webpack with different entry point each time, but still use a config file?每次使用不同的入口点运行 Webpack,但仍然使用配置文件?
【发布时间】:2018-05-15 11:35:33
【问题描述】:

我有一个项目,其中包含许多不同网站的代码。这些不是我构建或维护的网站,我只是为它们构建组件并交付这些代码以在网站上实现。

文件夹结构如下:

.
+-- tsconfig.json
+-- site_A
|   +-- component1
|   |   +-- component1.html
|   |   +-- component1.css
|   |   +-- component1.js
+-- site_B
|   +-- component2
|   |   +-- component2.ts
+-- my_modules
|   +-- module1.ts
|   +-- module2.ts
|   +-- module3.ts

my_modules 文件夹包含我在许多组件中经常使用的功能,因此我想将它们编写为可重用的模块。我的问题是,由于这不是一个单独的项目,我不能真正在所有项目上运行单个构建脚本,但实际上每次运行 Webpack 时都需要指定入口点。

我目前用作解决方案的是以下 npm 构建脚本:

"build": webpack --module-bind 'js=babel-loader' --module-bind 'ts=ts-loader' --output-path './build' --output-filename '[name].js'

我将入口点作为参数传递给它。但是,这使我无法使用 webpack.config.js 文件及其所有高级功能。

有没有一种方法可以在运行构建时使用配置文件并仍然能够指定入口点?如果其他模块捆绑器能提供更好的体验,我也愿意征求他们的建议。

【问题讨论】:

    标签: javascript node.js typescript webpack browserify


    【解决方案1】:

    我会尝试传入一个包含您要构建的模块名称的环境变量,例如webpack --env.site=siteA,然后在您的配置文件中您可以像这样访问它:

        module.exports = env => {
          return {
            entry: env.site + '/src/index.js',
            output: {
              filename: env.site + '.js',
              path: path.resolve(__dirname, 'build')
            }
          }
        }
    

    有用的链接:

    https://webpack.js.org/api/cli/#environment-options

    https://webpack.js.org/guides/environment-variables/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 2019-07-16
      • 2023-01-23
      相关资源
      最近更新 更多