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"代码
Jan 09 Javascript
InnerHtml和InnerText的区别分析
Mar 13 Javascript
让IE6支持min-width和max-width的方法
Jun 25 Javascript
利用jquery写的左右轮播图特效
Feb 12 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
Jan 27 Javascript
jQuery插件Tmpl的简单使用方法
Apr 27 Javascript
原生JS简单实现ajax的方法示例
Nov 29 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
Mar 21 Javascript
node前端开发模板引擎Jade的入门
May 11 Javascript
浅谈webpack性能榨汁机(打包速度优化)
Jan 09 Javascript
js获取form表单中name属性的值
Feb 27 Javascript
vue调用本地摄像头实现拍照功能
Aug 14 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
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
javascript 动态调整图片尺寸实现代码
2009/12/28 Javascript
解决IE6的PNG透明JS插件使用介绍
2013/04/17 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
详解各版本React路由的跳转的方法
2018/05/10 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
Python表示矩阵的方法分析
2017/05/26 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
linux面试题参考答案(8)
2016/04/19 面试题
新闻专业本科生的自我评价分享
2013/11/20 职场文书
客服专员岗位职责范本
2013/11/29 职场文书
内业资料员岗位职责
2014/01/04 职场文书
教师节感谢信
2015/01/22 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书