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 相关文章推荐
Prototype 学习 工具函数学习($方法)
Jul 12 Javascript
Jquery实战_读书笔记1—选择jQuery
Jan 22 Javascript
jquery-easyui关闭tab自动切换到前一个tab
Jul 29 Javascript
JavaScript 基础篇之运算符、语句(二)
Apr 07 Javascript
jQuery下拉美化搜索表单效果代码分享
Aug 25 Javascript
jquery插件uploadify多图上传功能实现代码
Aug 12 Javascript
阿里云ecs服务器中安装部署node.js的步骤
Oct 08 Javascript
Javascript农历与公历相互转换的简单实例
Oct 09 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
Jan 24 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
Feb 16 Javascript
AngularJS 霸道的过滤器小结
Apr 26 Javascript
vue指令做滚动加载和监听等
May 26 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
PHP仿盗链代码
2012/06/03 PHP
php对文件进行hash运算的方法
2015/04/03 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
2016/08/23 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
JavaScript 布尔操作符解析  && || !
2012/08/10 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
Javascript下拉刷新的简单实现
2017/02/14 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
微信小程序 网络通信实现详解
2019/07/23 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
在Python的struct模块中进行数据格式转换的方法
2015/06/17 Python
python中模块查找的原理与方法详解
2017/08/11 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
同程旅游英文网站:LY.com
2018/11/13 全球购物
后勤人员岗位职责
2013/12/17 职场文书
大学生交通专业求职信
2014/09/01 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
Go 语言结构实例分析
2021/07/04 Golang
Python sklearn分类决策树方法详解
2022/09/23 Python
Python创建SQL数据库流程逐步讲解
2022/09/23 Python