vue-cli项目配置多环境的详细操作过程


Posted in Javascript onOctober 30, 2018

vue-cli 默认只提供了 dev 和 prod 两种环境。但其实正真的开发流程可能还会多一个 sit 或者 stage 环境,

就是所谓的测试环境和预发布环境。所以我们就要简单的修改一下代码。其实很简单就是设置不同的环境变量

详细操作过程

1.在 package.json 中添加 test 命令

"scripts": {
  "dev": "cross-env NODE_ENV=online node build/dev-server.js --host 192.168.1.8",
  "local": "cross-env NODE_ENV=local node build/dev-server.js",
  "build": "node build/build.js",
  "build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js",
  "build:sit": "cross-env NODE_ENV=production env_config=sit node build/build.js"
 },

2.创建环境文件 (BASE_API 为接口的主地址)

/config/dev.env.js (开发环境)

module.exports = {
 NODE_ENV: '"development"',
 ENV_CONFIG: '"dev"',
 BASE_API: '"http://192.168.1.7"' // 这里是后端和后端做开发测试
}
/config/sit.env.js (测试环境,测试服)

module.exports = {
 NODE_ENV: '"production"',
 ENV_CONFIG: '"sit"',
 BASE_API: '"http://test.todomore.cn"'
}
/config/prod.env.js (生产环境,正式服)

module.exports = {
 NODE_ENV: '"production"',
 ENV_CONFIG: '"prod"',
 BASE_API: '"http://www.todomore.cn"'
}

3.修改 config/index.js

var path = require("path")

module.exports = {
 // 开发环境配置
 dev: {
  assetsSubDirectory: "static",
  assetsPublicPath: "/",
  port: 7127,
  // context: [
  //  //代理路径
  //  "/shopping",
  // ],
  // proxypath: "http://localhost:7127",
  cssSourceMap: false
 },
 // 生产环境配置
 build: {
  index: path.resolve(__dirname, "../../../public/store/index.html"),
  assetsRoot: path.resolve(__dirname, "../../../public/store"),
  assetsSubDirectory: "static",
  assetsPublicPath: "/store/",
  productionSourceMap: true,
  // Surge or Netlify already gzip all static assets for you.
  // Before setting to `true`, make sure to:
  // npm install --save-dev compression-webpack-plugin
  productionGzip: false,
  productionGzipExtensions: ["js", "css"]
 }
}

4.安装插件(如果 package.json 里面本来就有 cross-env 的话就不用这一步了)

npm install --save cross-env

修改 webpack.prod.conf

原来的 env 是引入的 prod.env:

// const env = require('../config/prod.env')

修改为:

const env = require("../config/" + process.env.env_config + ".env")

6.修改提示语

跟 build:pre 不同的是 node_env 需要指向 config 中的文件名称,与之对应的是 env_config 的名字。

这样便可以打包成功了。

build.js 中有一段描述:

js const spinner = ora("building for prod....")

可以动态修改为:

js const spinner = ora("building for " + process.env.env_config)

使用命令

# 生产环境(正式服)
npm run build:prod
# 测试环境(测试服)
npm run build:sit

生成在根目录 dist 的配置

index: path.resolve(__dirname, '../dist/index.html'), // 入口文件路径
  assetsRoot: path.resolve(__dirname, '../dist'), // 生成在/dist
  assetsSubDirectory: 'static',          // 资源子目录
  assetsPublicPath: '/',             // 资源公共路径

总结

以上所述是小编给大家介绍的vue-cli项目配置多环境的详细操作过程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
Jul 04 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
Nov 25 Javascript
21个值得收藏的Javascript技巧
Feb 04 Javascript
javascript实现禁止复制网页内容
Dec 16 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
Dec 08 Javascript
URL中“#” “?” &“”号的作用浅析
Feb 04 Javascript
jquery.validate表单验证插件使用详解
Jun 21 jQuery
jquery ajaxfileupload异步上传插件
Nov 21 jQuery
JS实现对json对象排序并删除id相同项功能示例
Apr 18 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
Sep 25 Javascript
基于html+css+js实现简易计算器代码实例
Feb 28 Javascript
利用JavaScript为句子加标题的3种方法示例
Jan 05 Javascript
详解微信小程序中组件通讯
Oct 30 #Javascript
vue移动端项目缓存问题实践记录
Oct 29 #Javascript
vue 使用vue-i18n做全局中英文切换的方法
Oct 29 #Javascript
Element-UI踩坑之Pagination组件的使用
Oct 29 #Javascript
vue-router权限控制(简单方式)
Oct 29 #Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
Oct 29 #Javascript
Vue项目自动转换 px 为 rem的实现方法
Oct 29 #Javascript
You might like
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
javascript内存管理详细解析
2013/11/11 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
实例讲解JavaScript预编译流程
2019/01/24 Javascript
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
python基础教程之基本内置数据类型介绍
2014/02/20 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
广告学专业推荐信范文
2013/11/23 职场文书
护士实习生自我鉴定范文
2013/12/10 职场文书
机关搬迁方案
2014/05/18 职场文书
学生干部培训方案
2014/06/12 职场文书
文明倡议书
2015/01/19 职场文书
检讨书模板
2015/01/29 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
Golang 实现WebSockets
2022/04/24 Golang
python实现商品进销存管理系统
2022/05/30 Python
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS