我需要从我的"常数.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