如何将参数从Web Pack传递到代码?

Vin*_*nny 3 javascript typescript gulp webpack

我有一个gulp任务,它使用yargs 接收参数位置。而且我使用webpack为我的应用程序提供入口点

 webpackConfig.entry.push('BootStrapper.ts');
Run Code Online (Sandbox Code Playgroud)

我有一个webpack配置,它具有引导程序的入口点。

module.exports = {
entry: [],
output: {
    path: require("path").resolve('./dist/'),
    filename: 'MyProcess.built.js'
 },
}
Run Code Online (Sandbox Code Playgroud)

我想将位置变量传递给Bootstrapper.ts,有没有办法实现?

sci*_*per 5

就在这里。

首先,调整您的webpack配置以接收参数:

{
  plugins: [
    new webpack.DefinePlugin({
      'process.env.YOUR_UNIQUE_VARIABLE': JSON.stringify(process.env.YOUR_UNIQUE_VARIABLE)
    )
  ]
}
Run Code Online (Sandbox Code Playgroud)

然后,在您的Bootstrapper.ts中,您可以编写如下内容:

const buildVariable = process.env.YOUR_UNIQUE_VARIABLE;
Run Code Online (Sandbox Code Playgroud)

如果您现在运行您的webpack脚本(假设运行一个npm脚本),则将变量传递为:

cross-env YOUR_UNIQUE_VARIABLE=value webpack
Run Code Online (Sandbox Code Playgroud)

您的代码将被编译为:

const buildVariable = 'value';
Run Code Online (Sandbox Code Playgroud)