所以我嘗試一些東西,通過執行以下解決了以上: -
在我們的WebPack配置添加DefinePlugin。以下是我的webconfig: -
plugins: [
new BundleTracker({filename: './webpack-stats.json'}),
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify(process.env.environment),
}
})
],
現在在編譯時,我們使用下面的命令: -
environment=local webpack (for local)
environment=development webpack(for dev)
environment=production webpack(for prod)
現在,如果你看到我們設置「NODE_ENV」使用CLI輸入,所以當「NODE_ENV」是生產作爲價值,webpack會自動縮小您的輸出包。
現在我們說我們在一個文件中聲明瞭API url(我有Constants.jsx),所以我們在constants.jsx中添加了以下內容。我們可以讀取此Constants.jsx中webpack配置中設置的NODE_ENV,並將它們導入到您的組件中,並從中導出APIS。
const api_url=function(){
let api_url='';
if(process.env.NODE_ENV == 'local'){
api_url= 'http://localhost:8002/api/v0';
}
else if(process.env.NODE_ENV == 'development'){
api_url = 'https://development/api/v0';
}
else if(process.env.NODE_ENV == 'production'){
api_url = 'https://production/api/v0';
}
return api_url;
}
export const url= api_url();
見http://stackoverflow.com/questions/30030031/passing-environment-dependent-variables-in-webpack如何傳遞變量在webpack.config.js。 –