vue-cli 根据不同的环境打包
2024-10-21 14:19:47
根据项目需要,通过vue-cli中的npm run build 打包到不同的环境,例如测试环境,预发布环境,线上环境,根据process.env分别进行接口的调用
vue-cli 中build中build.js
require('./check-versions')() // process.env.NODE_ENV = 'production' var ora = require('ora')
var rm = require('rimraf')
var path = require('path')
var chalk = require('chalk')
var webpack = require('webpack')
var config = require('../config')
var webpackConfig = require('./webpack.prod.conf') var spinner = ora('building for ' + process.env.NODE_ENV + ' of ' + process.env.env_config+ ' mode...' )
spinner.start()
// var spinner = ora('building for production...')
// spinner.start()
build中webpack.prod.conf.js
const env = config.build[process.env.env_config+'Env']
// const env = process.env.NODE_ENV === 'testing'
// ? require('../config/test.env')
// : require('../config/prod.env')
config中的index.js
module.exports = {
build: {
prodEnv: require('./prod.env'), // 线上环境
sitEnv: require('./sit.env'), // 测试环境
ppeEnv: require('./ppe.env'), // 预发布环境
……
config中 dev.env.js
开发环境用的是测试接口,通过merge进行拷贝
var merge = require('webpack-merge')
var sitEnv = require('./sit.env') module.exports = merge(sitEnv, {
NODE_ENV: '"development"'
})
在config中新建sit.env.js、ppe.env.js
module.exports = {
NODE_ENV: '"sitEnvironment"',
ENV_CONFIG: '"sit"',
BASE_API: '"http://*****"' // 测试环境地址
}
module.exports = {
NODE_ENV: '"ppeEnvironment"',
ENV_CONFIG: '"ppe"',
BASE_API: '"http://******"' // 预发布环境地址
}
安装cross-env
npm install cross-env -D
package.json
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js",
"build:ppe": "cross-env NODE_ENV=ppeEnvironment env_config=ppe node build/build.js",
"build:sit": "cross-env NODE_ENV=sitEnvironment env_config=sit node build/build.js",
"lint": "eslint --ext .js,.vue src","test": "npm run lint"
},
打包时候我们只需要
npm run build:sit // 测试环境
npm run build:ppe // 预发布环境
npm run build:prod // 线上环境
最新文章
- 使用maven搭建ssh框架
- Expected one result (or null) to be returned by selectOne(), but found 2
- user profile services提示“BAIL: MMS(7116): sql.cpp(8490): 0x80231334 (The sql connection string has unsupported values.)”解决办法
- js控制只能输入数字
- HttpWebRequest's Timeout and ReadWriteTimeout — What do these mean for the underlying TCP connection?
- .NET常用类库知识总结
- iOS 开发中的问题
- Spark之路 --- Scala IDE Maven配置(使用开源中国的Maven库)和使用
- caffe 配置 札记
- Android 自动编译、打包生成apk文件 4 - 多渠道批量打包
- Linux下可执行程序调试信息的分离及release程序的调试
- Tomcat启动中的一些问题
- Java中读取txt文件中中文字符时,出现乱码的解决办法
- Mapped Statements collection already contains value for ***.***的问题
- bzoj4025二分图(线段树分治 并查集)
- oracle数据导出以及导入
- git merge简介
- [AaronYang]那天有个小孩跟我说Js正则
- 使用abstract关键字的使用
- I/O事件处理模型之Reactor和Proactor 【转】
热门文章
- Coolify系列01- 从0到1超详细手把手教你上手Heroku 和 Netlify 的开源替代方案
- Java基础学习笔记-常量与变量♪(^∇^*)
- 今天试试NuxtJS
- SOFAJRaft源码阅读(伍)-初识RheaKV
- Autodesk Maya2023 破解版安装教程(小白看了也说understand)
- P25_wxss - rpx单位
- Ubuntu18.04中用CMake-gui安装OpenCV3.2.0和OpenCV_contrib-3.2.0
- 安卓逆向 ARM基础篇
- 【KAWAKO】audiotsm-使用python对音频进行变速不变调处理
- 取出每个分组的的第一条数据sql