javascript - 每次以不同的入口点运行 Webpack,但仍然使用配置文件?

标签 javascript node.js typescript webpack browserify

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

文件夹结构如下所示:

.
+-- 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 构建脚本:

“构建”:webpack --module-bind 'js=babel-loader' --module-bind 'ts=ts-loader' --output-path './build' --output-filename '[名称].js'

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

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

最佳答案

我会尝试传入一个环境变量,其中包含您要构建的模块的名称,例如 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/

关于javascript - 每次以不同的入口点运行 Webpack,但仍然使用配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47592103/

相关文章:

javascript - 如何使用 JavaScript 在 div 中创建输入标签

javascript - 为什么 Node 的 process.stdin.on ('readable' ) 会触发我的回调一次?

javascript - fullcalendar 通过弹出模式奇怪的行为删除事件

node.js - Mongo 仅以 ISO_8601 格式存储日期,而不是 unix

node.js - 使用 Node JS 将 Excel 转换为 JSON

node.js - 在 Angular 2 应用程序中导入 Node js 模块

javascript - 默认导出为全局变量 Typescript 1.8 --module UMD

javascript - Bootstrap JavaScript 不工作

typescript - 确保 TypeScript 联合在整个代码中保持狭窄

typescript - 更窄的类型不能分配给其他类型