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 相关文章推荐
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
Aug 15 Javascript
JavaScript 对象的属性和方法4种不同的类型
Mar 19 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
Dec 07 Javascript
使用js如何实现全选与全不选
Dec 30 Javascript
js实现带圆角的多级下拉菜单效果
Aug 28 Javascript
表单中单选框添加选项和移除选项
Jul 04 Javascript
Vue监听数据对象变化源码
Mar 09 Javascript
vue环境搭建简单教程
Nov 07 Javascript
javaScript日期工具类DateUtils详解
Dec 08 Javascript
使用Angular CLI进行Build(构建)和Serve详解
Mar 24 Javascript
小程序最新获取用户昵称和头像的方法总结
Sep 23 Javascript
js轮播图之旋转木马效果
Oct 13 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获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
javascript 异常处理使用总结
2009/06/21 Javascript
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
JS 图片缩放效果代码
2010/06/09 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
Python实现的检测网站挂马程序
2014/11/30 Python
解决Python 遍历字典时删除元素报异常的问题
2016/09/11 Python
python爬虫之百度API调用方法
2017/06/11 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
求职信的要素有哪些呢
2013/12/26 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
班主任对学生的评语
2014/04/26 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
Win11快速关闭所有广告推荐
2022/04/19 数码科技