webpack打包不同环境的访问地址

一、使用方法示例

  • 本地nodejs部署
 npm run devlocal
  • 打包
 打包dev环境:npm run build-dev
 打包test环境:npm run build-test
 打包pro环境:npm run build-prod
 打包test环境:npm run build-maintest
 打包pro环境:npm run build-

二、配置步骤

步骤1:在/config文件夹下添加一个打包环境,如test.env.js。内容如下:

'use strict'
module.exports =  {
  NODE_ENV: '"testing"',
  BASE_API: '"https://investor.shch.test/api"'
}

步骤2:上述文件在prod.env.js文件中引用,内容如下。

'use strict'

const testEnv = require('./test.env');  //引入配置

let envType = process.argv.splice(2)[0] || 'prod'; //读取变量
let envs = {
  prod:{
    NODE_ENV: '"production"',
    BASE_API: '"https://investor.shch.prod/api"'
  },
  dev:devEnv,
  test:testEnv,
  maintest:maintestEnv,
  simulate:simulateEnv
};
let exportENV = envs[envType];  //取相应配置

module.exports = exportENV

步骤3:在package.json中添加执行命令

 "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "build": "node build/build.js",
    "devlocal": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", 
    
    "build-test": "npm run build -- test",//新增

    /*相关配置略*/
  },

步骤4:axios配置文件(http.js)中配置默认地址

axios.defaults.baseURL = process.env.BASE_API;

运行编译test环境

npm run build-test  

//注意本地编译后需要更改/config/index.js 下的build配置(一般不用)。配置如下
// assetsPublicPath: '/', 修改前
assetsPublicPath: './', //修改后

三、待改问题

  • 后续应该通过指定参数传入

你可能感兴趣的:(webpack)