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

时间:2017-12-01 11:08:06

标签: 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构建脚本:

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

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

有没有办法可以使用配置文件,并且仍然可以在运行构建时指定入口点?如果他们能提供更好的体验,我也会对其他模块捆绑商的建议持开放态度。

1 个答案:

答案 0 :(得分:1)

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

webpack --env.site=siteA

有用的链接:

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

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