如何在 webpack 中配置啟動腳本來使用我想要的 api?
例如,當我運行“npm start”時,我的 webpack 源將使用 productuion api 'https://abc_loginapi.com,而當我運行“npm run dev”時,webpack 源將使用本地 api,如http://localhost:9500/login.
我目前的做法是相當手動的,當我想運行一個時,我會評論另一個
export const API_HOST_LIST =
{
HostBaseURL: 'https://abc_loginapi.com'
// HostBaseURL: 'http://localhost:9500/login'
}
有什么辦法可以處理這個問題,我的原始碼是webpack4 reactJS
uj5u.com熱心網友回復:
您可以使用環境變數來處理它,使用 --env 引數將 env 添加到腳本中,如下所示:
webpack --env prod // result { prod: true }
并在 webpack 組態檔中呼叫它
const path = require('path');
module.exports = env => {
// Use env.<YOUR VARIABLE> here:
console.log('Production: ', env.prod); // true
return {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
};
};
有關更多詳細資訊,請在此處查看 Webpack 檔案
uj5u.com熱心網友回復:
就像Phr0gggg提到的,使用環境變數是一種選擇。
另一種選擇是使用“NODE_ENV”變數。
在開發模式下,process.env.NODE_ENV 等于“開發”,而在生產中,它等于“產品”
你可以使用這樣的東西:
const isProduction = process.env.NODE_ENV === "production"
const hostBaseUrl = () => {
if (isProduction) {
return 'http://localhost:9500';
}
return 'https://abc_loginapi.com';
}
export const API_HOST_LIST =
{
HostBaseURL: hostBaseUrl()
}
uj5u.com熱心網友回復:
在 webpack 中可以使用process.env api 來判斷,webpack 檔案中的代碼類似。
export const API_HOST_LIST =
{
HostBaseURL: process.env.NODE_ENV ==='dev'? 'http://localhost:9500/login':'https://abc_loginapi.com'
}
package.json 檔案中的代碼如。
"scripts": {
"dev": "NODE_ENV=dev npm run start",
"start": "npm start"
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/517258.html
標籤:反应网页包
