如何使用WebPack中的NPM脚本从代码访问命令行变量



我需要从我的"常数.js"文件中的npm脚本访问命令行参数。

我发现我可以在process.env中访问webpack.config.js文件中的参数,但是它在应用程序源文件中未定义。

我需要从控制台运行脚本,例如:

npm webpack-dev-server --hot MY_PARAMETER=some_value

,然后在我的常数中访问my_parameter.js中的my_parameter,例如以下方式:

process.env.MY_PARAMETER === "some_value"   // true

有人可以帮忙吗?非常感谢。

如果您有一个.env文件,最好的选择是使用dotenv-webpack(以及可选的是string-replace-webpack-plugin或类似的内容(。如果您担心安全性,请阅读文档,作为建议,您可能需要在VCS忽略文件(.gitignore.hgignore等(中添加.env.local条目,并使用已定义的path的对象调用new DotenvPlugin,即,

const DotEnvPlugin = require('dotenv-webpack');
module.exports = {
/* other settings */
  plugins: [
    // other plugins,
    new DotEnvPlugin({
      path:'.env.local',
      // safe: true, // load '.env.example' to verify the '.env' variables are all set. Can also be a string to a different file.
    })
  ]
}

如果您没有.env文件,则上述string-replace-webpack-plugin可能很有用,只需将这些变量添加到您的环境中即可。(有关如何这样做的咨询您的操作系统/管理员(

最后,您 can 在命令行调用中定义它们;他们通常只需要在发出任何命令之前就可以了,即(在bash中(:

MY_PARAMETER=some_value node_modules/.bin/webpack-dev-server --hot

最新更新