[webpack-cli] Error: Unknown option '--inline'
[webpack-cli] Run 'webpack --help' to see available commands and options
当然,我们也可以在package.json中直接通过set的方式来配置变量。下面是利用配置变量来区分不同环境请求地址的一个例子。
"scripts": {
// 多个变量用&&隔开,注意等号两边别留空格。 &&左边也别留空格
"dev": "SET BASE_URL=base.com&& SET ENV=develop&& node webpack.js dev ",
"prod": "SET BASE_URL=prod.com&& SET ENV=product&& node webpack.js dev ",
},
在webpack配置中注入到打包文件中:
plugins: [
new webpack.DefinePlugin({
NODE_ENV:JSON.stringify(process.env.ENV),
BASE_URL:JSON.stringify(process.env.BASE_URL)
})
]
那么在前端js中我们可以直接访问BASE_URL这个变量,并且不会影响process.argv数组。
当然,我们如果直接定义这样一个全局变量会容易污染变量环境,所以我们把BASE_URL放到一个名叫process.env的对象里。这样在前端可以通过process.env.BASE_URL
获取。注意:这里的process.env和node中的process.env没有任何关系,仅仅是一个变量名,方便我们在获取的同时不污染全局变量环境
plugins: [
new webpack.DefinePlugin({
'process.env':{
NODE_ENV:JSON.stringify(process.env.ENV),
BASE_URL:JSON.stringify(process.env.BASE_URL)
},
})
]
http.js
let baseUrl = process.env.BASE_URL
let env = process.env.NODE_ENV
post(baseUrl).then() ....