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 相关文章推荐
javascript TextArea动态显示剩余字符
Oct 22 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
Apr 12 Javascript
在浏览器中获取当前执行的脚本文件名的代码
Jul 19 Javascript
DIV外区域Click后关闭DIV的实现代码
Dec 21 Javascript
在JS数组特定索引处指定位置插入元素的技巧
Aug 24 Javascript
详谈jQuery中的this和$(this)
Nov 13 Javascript
BootStrap响应式导航条实例介绍
May 06 Javascript
JS中使用FormData上传文件、图片的方法
Aug 07 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
Aug 29 Javascript
基于Marquee.js插件实现的跑马灯效果示例
Jan 25 Javascript
JavaScript对象原型链原理解析
Jan 22 Javascript
解决VueCil代理本地proxytable无效报错404的问题
Nov 07 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
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
2020/04/23 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
javascript开发中因空格引发的错误
2010/11/08 Javascript
简略的前端架构心得&&基于editor为例子的编码小技巧
2010/11/25 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
C语言开发工程师测试题
2016/12/20 面试题
运动会广播稿50字
2014/01/26 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
我为党旗添光彩演讲稿
2014/09/13 职场文书
2015年预算员工作总结
2015/05/14 职场文书