美文网首页让前端飞Web前端之路Vue.js专区
vue项目运用webpack动态打包多环境域名

vue项目运用webpack动态打包多环境域名

作者: 李佳明先生 | 来源:发表于2019-07-29 21:43 被阅读2次

估计上线的时候,大家都遇到过这个烦恼测试线生产线的api基础域名不同,如果手动改起来实在麻烦,其实webpack中内置了多环境域名自定义打包的功能;

第一步
npm install cross-env -g
第二步
"scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "unit": "jest --config test/unit/jest.conf.js --coverage",
    "e2e": "node test/e2e/runner.js",
    "test": "npm run unit && npm run e2e",
    "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs",
    "build": "node build/build.js",
    "build:test": "cross-env NODE_ENV=production BUILD_ENV=test node build/build.js",
    "build:prod": "cross-env NODE_ENV=production BUILD_ENV=prod node build/build.js"
  },

package.json里配置 build:test build:prod

第三步

修改config目录下的prod.env.js

'use strict'
const BUILD_ENV = process.env.BUILD_ENV
let baseUrl
switch (BUILD_ENV) {
  case 'test':
    baseUrl = 'http://api.test.com'
    //测试
    break;
  case 'prod':
    baseUrl = 'http://api.prod.com'
    //生产
    break;
}
module.exports = {
  NODE_ENV: '"production"',
  BUILD_ENV: '"' + BUILD_ENV + '"',
  baseUrl: '"' + baseUrl + '"',
}

改后,可以在项目里通过process.env拿到暴露出去的api基础域名,其实这里已经可以用npm run build:test(使用测试线域名打包),npm run build:prod(使用生产线域名打包),但这里还需要一个开发环境基础api

第四步

更改config目录下的dev.env.js
更改如下:

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  baseUrl: '"http://127.0.0.1"'
})

相当于增加了一个开发环境基础域名

第五步

在基础域名变量取值的时候做一个判断

const BASE_URL = process.env.baseUrl || process.dev.baseUrl

笔者的项目基础域名取值是在src/api/url.js下

success

使用方法如下

npm run build:test ========>测试环境下打包
npm run build:prod ========>生产环境下打包
npm run dev ========>开发环境下开发

相关文章

  • vue项目运用webpack动态打包多环境域名

    估计上线的时候,大家都遇到过这个烦恼,测试线和生产线的api基础域名不同,如果手动改起来实在麻烦,其实webpac...

  • vue+webpack app项目(1)

    概述 项目中会用到的插件 vue-router vue-resource 打包工具 webpack 依赖环境 no...

  • Vue 基础(1)

    学习测试环境可通过CDN地址引入Vue(项目开发和线上环境一般使用vue-cli、webpack打包) 可使用构造...

  • nginx结合vue+node简单配置

    根目录部署vue打包dist vue项目打包为dist,默认访问服务器绑定的域名,需要配置80端口,配置位置多默认...

  • vue项目优化

    vue 项目优化 项目打包体积优化 通常vue项目通过webpack打包后,会出现vendor包的体积过大的情况,...

  • vueDemo-1

    vue打包 使用vue-cli搭建的项目中,是使用webpack进行打包,在使用vue init 进行初始化项目...

  • 2019-04-01

    前端项目打包部署 通过vue-cli和webpack构建的项目体积一般都较大,在生产环境下,需要进行打包部署。 1...

  • vue&webpack多页面配置

    前言 最近由于项目需求,选择使用vue框架,webpack打包直接使用的vue-cli,因为需要多页面而vue-c...

  • 用webpack打包vue项目(单页面应用)的webpack.c

    场景:vue项目(单页面应用)已完成;用webpack打包vue项目准备上线; 在项目根目录(手写)创建打包配置文...

  • Vue项目打包及测试注意事项

    Vue项目依赖node服务和webpack进行打包,以pht-vue-simple项目为例分析项目打包配置及注意事...

网友评论

    本文标题:vue项目运用webpack动态打包多环境域名

    本文链接:https://www.haomeiwen.com/subject/mkairctx.html