博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue.js+Element-UI从0到部署:基础篇(3.前端自动化、多环境配置到发布)
阅读量:6392 次
发布时间:2019-06-23

本文共 3171 字,大约阅读时间需要 10 分钟。

上一节中我们介绍到相关必要的依赖注入 在实际开发过程中,往往不只develop 和production两种环境,往往还有测试环境,仿真环境等等,需要配置不同的选项(BASE_API等),本文将一步一步进行讲解如何添加环境配置。本文实例为增加一个测试环境的打包配置。并且结合 配置构建 多环境打包,并且自动化发布到服务器。

多环境打包

步骤1

在./config文件夹下新建一个sit.env.js 的文件

// 测试仿真环境module.exports = {  NODE_ENV: '"production"',  BASE_API: '"http://120.55.169.121:8888/index"',  CRM_PATH: '"http://120.55.169.121:8083"',        //  其他配置};复制代码

dev.env.js 、prode.env.js 也可进行类似的配置,把各个环境请求的不同端口配置在这

后面在你的程序中,如果要使用这些变量可参考下例

let baseUrl  = process.env.BASE_API;  let crmPath = process.env.CRM_PATH;// 创建axios实例const service = axios.create({  baseURL: BASE_API,      // api的base_url})复制代码

步骤2

修改./build/build.js 文件,将 process.env.NODE_ENV = 'production' 注释或者删除,因为我们在后面需要动态配置NODE_ENV,此步骤如图

步骤3

修改./build/webpack.prod.conf.js 文件 修改 evn,不BB直接上图

const env = require('../config/'+process.env.env_config+'.env')复制代码

这样webpack 的配置就修改完了。 在这里可以顺便修改一下这个文件下 UglifyJsPlugin,打包构建的时候可以去除console.log,debugger。配置如下。(此步骤和多环境配置无关)

new webpack.optimize.UglifyJsPlugin({      compress: {        warnings: false,        drop_debugger: true,     // 去除构建的 debugger        drop_console: true        //  去除构建的 console      },      sourceMap: true    }),复制代码

步骤4

我们需要修改 package.json 的script 语句来增加命令启动我们新增的服务

"scripts": {    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",    "start": "npm run dev",    "build:sit": "NODE_ENV=production env_config=sit node build/build.js",    "build:prod": "NODE_ENV=production env_config=prod node build/build.js"  },复制代码

然后启动 run run build:sit,可是这个时候报错了,env_config 不被识别,这是由于 windows 不支持 env_config=sit 设置的方式。我们只需要安装一个 cross-env 的插件即可

yarn add cross-env -D   // 或者你使用npm 也可  npm install cross-env -dev--save复制代码

接下来 继续修改一个 script 语句启动即可

"scripts": {    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",    "start": "npm run dev",    "build:sit": "cross-env NODE_ENV=production env_config=sit node build/build.js",    "build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js"  },复制代码

这样 你启动 npm run build:sit 将构建打包测试环境的代码 生成在 dist 文件目录下 启动 npm run build:prod 将构建打包生产环境的代码 生成在 dist 文件目录下

多环境发布

安装

npm install fjpublish -g复制代码

在项目根目录下建立一个 fjpublish.config.js 文件(为fjpublish配置文件)

module.exports = {  modules: [{    name: '测试环境',       env: 'sit',    ssh: {      host: '11.11.111.11',     // 服务器地址      port: 22,                 // 端口      username: 'root',         // 用户名      password: 'XXXX'          // 密码    },    buildCommand: 'build:sit',    // 构建命令  === npm run build:sit      localPath: 'dist',            // 构建后上传文件    remotePath: '/test/xx',       // 服务端路径  },{    name: '其他环境',    env: 'other',    ....}]}复制代码

同样的为了方便我们需要修改 package.json 的script mode

"scripts": {    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",    "start": "npm run dev",    "build:sit": "cross-env env_config=sit node build/build.js",    "build:prod": "cross-env env_config=prod node build/build.js",    "public:sit": "fjpublish env sit"  },复制代码

运行命令 npm run public:sit 确认后就会自动打包build:sit的代码,并且压缩后发布带你指定的服务器上,并且执行你的响应配置,如果需要多环境同时发布,只需要在fjpublish.config.js里面的modules里面增加一个对象进行相关配置即可。

至此 Vue-cli 项目的前端自动化已经配置好了。小伙伴们赶紧去试试把!

其他具体配置请看作者的文档详情

转载地址:http://mdpha.baihongyu.com/

你可能感兴趣的文章
西宁海关首次对外展示截获500余件有害生物标本
查看>>
泸州移动能源产业园首片薄膜电池组件成功下线
查看>>
韩国瑜会见陆委会主委陈明通:别给高雄念紧箍咒
查看>>
交通部:加大人工售票力度保障农民工春运出行
查看>>
物联网的学术层、应用层和行为层的基本介绍
查看>>
初探github(一)
查看>>
源码分析之 LinkedList
查看>>
免SDK实现微信/支付宝转账打赏功能
查看>>
安卓.9图片制作
查看>>
MySQL 高可用性keepalived+mysql双主
查看>>
Python环境安装及数据基本预处理-大数据ML样本集案例实战
查看>>
【详解】TiDB 2.0 GA is here !
查看>>
iOS开发-模拟网络环境
查看>>
Redux执行流程梳理
查看>>
iOS 指纹识别
查看>>
说说 Vue.js 组件
查看>>
iPhone 用USB连接SSH的时候一直报错
查看>>
关于Vuex的action传入多个参数的问题
查看>>
放弃jQuery, 使用原生js
查看>>
跨越适配&性能那道坎,企鹅电竞Android weex优化
查看>>