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

我有一个项目,其中包含众多不同网站的代码。 这些不是我build立或维护的网站,我只是为他们构build组件,并提供这些代码在网站上实施。

文件夹结构如下所示:

. +-- 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文件夹包含我经常在许多组件中使用的函数,因此我想将它们编写为可重用模块。 我的问题是,因为这不是一个单一的项目,我不能真正运行一个单一的构build脚本,但实际上每次运行Webpack时都需要指定入口点。

我目前使用的解决scheme是以下npm构build脚本:

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

我把它作为一个论点的入口点。 但是,这阻止了我使用webpack.config.js文件及其所有高级function。

有没有一种方法可以使用configuration文件,并仍然能够在运行构build时指定入口点? 如果他们能提供更好的体验,我也会对其他模块打包商提出build议。

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

  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/