将变量从 NPM 脚本传递到 Webpack
Passing variables from NPM Scripts to Webpack
我有一个使用 Webpack 的生产构建,它使用节点的 process.env
来设置环境变量:
webpack.prod.babel.js:
const DefinePlugin = new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production'),
API_URL: JSON.stringify('https://myprodurl.com'),
},
});
packge.json:
"scripts: {
"build:prod": "webpack"
}
它工作正常,但我需要一些不同的东西。
我需要在 NPM 脚本 中将生产 url 设置为变量。
所以,而不是这个:
npm run build:prod
我需要这个:
npm run build:prod --URL https://myprodurl.com
如何在命令行中定义环境变量,例如:
URL=https://myprodurl.com npm run build:prod
我用一个简单的脚本对此进行了测试,并能够打印出 URL
。
"scripts": {
"test": "./myTest.js"
},
myTest.js:
#!/usr/local/bin/node
'use strict'
console.log(process.env.URL);
console.log('Done!');
然后:
$ URL=https://whatever.com npm run test
> my-test@1.0.0 test /Test/my-test
> ./myTest.js
https://whatever.com
Done!
编辑:如@RyanZim 所述,请参阅以下内容以获取 Windows:https://github.com/kentcdodds/cross-env
(免责声明:我不使用 Windows 并且从未尝试过此库)
我有一个使用 Webpack 的生产构建,它使用节点的 process.env
来设置环境变量:
webpack.prod.babel.js:
const DefinePlugin = new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production'),
API_URL: JSON.stringify('https://myprodurl.com'),
},
});
packge.json:
"scripts: {
"build:prod": "webpack"
}
它工作正常,但我需要一些不同的东西。
我需要在 NPM 脚本 中将生产 url 设置为变量。
所以,而不是这个:
npm run build:prod
我需要这个:
npm run build:prod --URL https://myprodurl.com
如何在命令行中定义环境变量,例如:
URL=https://myprodurl.com npm run build:prod
我用一个简单的脚本对此进行了测试,并能够打印出 URL
。
"scripts": {
"test": "./myTest.js"
},
myTest.js:
#!/usr/local/bin/node
'use strict'
console.log(process.env.URL);
console.log('Done!');
然后:
$ URL=https://whatever.com npm run test
> my-test@1.0.0 test /Test/my-test
> ./myTest.js
https://whatever.com
Done!
编辑:如@RyanZim 所述,请参阅以下内容以获取 Windows:https://github.com/kentcdodds/cross-env
(免责声明:我不使用 Windows 并且从未尝试过此库)