我需要从“ constants.js”文件中的npm脚本访问命令行参数。
我发现我可以使用process.env访问webpack.config.js文件中的参数,但在应用程序源文件中未定义参数。
我需要从控制台运行脚本,例如:
npm webpack-dev-server --hot MY_PARAMETER=some_value
然后以某种方式在我的constants.js中访问MY_PARAMETER,例如:
process.env.MY_PARAMETER === "some_value" // true
有人可以帮忙吗?非常感谢。
答案 0 :(得分:0)
如果您有.env
文件,则最好的选择是使用dotenv-webpack
(以及可选的string-replace-webpack-plugin
或类似名称)。作为建议,阅读文档时,如果您担心安全性,则可能需要向VCS忽略文件(.env.local
,.gitignore
等)中添加一个.hgignore
条目。 ,并使用定义了new DotenvPlugin
的对象(即
path
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
可能会有用,您只需将这些变量添加到您的环境中即可。 (有关如何操作,请咨询操作系统/管理员)
最后,您可以在命令行调用中对其进行定义;他们通常只需要在发出任何命令(即(以bash格式))之前执行操作即可
MY_PARAMETER=some_value node_modules/.bin/webpack-dev-server --hot