看項(xiàng)目的時(shí)候因?yàn)椴欢l(fā)現(xiàn)的問(wèn)題
在生產(chǎn)環(huán)境和開(kāi)發(fā)環(huán)境的時(shí)候,有些變量是不一樣的,比如接口,打包的時(shí)候就需要切換。
let baseUrl = '';
if(process.env.NODE_ENV == 'production'){
baseUrl = 'https://xxxxxxxxx';
} else if (process.env.NODE_ENV == 'development') {
baseUrl = '/api'
}
export {
baseUrl
}
這里的process.env.NODE_ENV就讓我非常疑惑,不知道是在哪里配置的。
其實(shí)process.env.NODE_ENV 是通過(guò)webpack 內(nèi)置的 [DefinePlugin]為所有的依賴定義的變量。
webpack.dev.conf.js
new webpack.DefinePlugin({
'process.env.NODE_ENV': 'development'
}),
webpack.prod.conf.js
new webpack.DefinePlugin({
'process.env.NODE_ENV': 'production'
}),
這樣的話可以在項(xiàng)目中任何地方使用process.env.NODE_ENV變量。
例如在接口js中
const url = process.env.NODE_ENV === 'development' ? 'http://xxxxx' : 'http://xxxxx'
此外,process.env.NODE_ENV變量的值可以在
/config/dev.env.js,/config/prod.env.js兩個(gè)文件中設(shè)置(這兩個(gè)文件就是針對(duì)生產(chǎn)環(huán)境和發(fā)布環(huán)境設(shè)置不同參數(shù)的文件),然后require到webpack.dev.conf.js,webpack.prod.conf.js中去。