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的.live()和.die() 使用介绍
Sep 10 Javascript
node.js中的events.emitter.once方法使用说明
Dec 10 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
Apr 13 Javascript
JS根据生日算年龄的方法
May 05 Javascript
js获取图片宽高的方法
Nov 25 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
Dec 16 Javascript
js中如何完美的解析数据
Mar 18 Javascript
layui递归实现动态左侧菜单
Jul 26 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
Mar 02 Javascript
js实现小时钟效果
Mar 25 Javascript
如何实现js拖拽效果及原理解析
May 08 Javascript
vuex的使用步骤
Jan 06 Vue.js
详解微信小程序中组件通讯
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
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
php进程间通讯实例分析
2016/07/11 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
node.js中的Socket.IO使用实例
2014/11/04 Javascript
js验证上传图片的方法
2015/05/12 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
angular.js实现购物车功能
2017/10/23 Javascript
js构建二叉树进行数值数组的去重与优化详解
2018/03/26 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
Python的Flask框架与数据库连接的教程
2015/04/20 Python
python自动翻译实现方法
2016/05/28 Python
Python之列表实现栈的工作功能
2019/01/28 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
HTML5利用约束验证API来检查表单的输入数据的代码实例
2016/12/20 HTML / CSS
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
专业实习自我鉴定
2013/10/29 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
继续教育个人总结
2015/03/03 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python