Vue项目应该怎么分环境打包

这次给大家带来Vue项目应该怎么环境打包,Vue项目分环境打包的注意事项有哪些,下面就是实战案例,一起来看一下。

在项目开发中,我们的项目一般分为开发版、测试版、Pre版、Prod版。Vue-cli的默认环境一只有dev和prod两个,之前每次要发布测试版或Pre版都是修改了源码中API地址后打包,这样很麻烦。如果能根据不同环境打包就完美了。网上搜集了许多资料,现在可以分环境打包程序了,至于怎么打,接着住下看吧。

第1步:安装cross-env

在项目目录下运行如下命令安装cross-env,我的ide是webstorm,要以直接在ide里的Terminal窗口中运行,也可能通过windows的CMD、Linux的Terminal定位到项目根目录运行下面的命令。

npm i –save-dev cross-env

第2步:修改各环境下的参数

在config/目录下添加test.env.js、pre.env.js。修改prod.env.js里的内容,修改后的内容如下:

'use strict'module.exports = { NODE_ENV: '"production"', EVN_CONFIG:'"prod"', API_ROOT:'"/apis/v1"'}

登录后复制

分别对test.env.js和pre.env.js文件内容进修修改,修改后的内容如下:

'use strict'module.exports = { NODE_ENV: '"testing"', EVN_CONFIG:'"test"', API_ROOT:'"/test/apis/train"'}'use strict'module.exports = { NODE_ENV: '"presentation"', EVN_CONFIG:'"pre"', API_ROOT:'"/pre/apis/train"'}

登录后复制

对dev.env.js文件内容进行修改,修改后的内容如下。dev环境配制了服务代理,API_ROOT前的api是配制的代理地址。

module.exports = merge(prodEnv, { NODE_ENV: '"development"', VN_CONFIG: '"dev"', API_ROOT: '"api/apis/v1"'})

登录后复制

第3步:修改项目package.json文件

对package.json文件中的scripts内容进行个性,添加上新定义的几种环境的打包过程,里的参数与前面的调协保持一致。

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

登录后复制

在这里,NODE_ENV最好都设成production,因为在utils.js只做了production一种判定,亲测不会影响各环境API参数。 ##第4步:修改config/index.js

修改config/index.js文件中build参数,这里的参数会在build/webpackage.prod.conf.js中使用到

build:{  // Template for index.html  // 添加test pre prod 三处环境的配制  prodEnv: require('./prod.env'),  preEnv: require('./pre.env'),  testEnv: require('./test.env'),  //下面为原本的内容,不需要做任何个性  index:path.resolve(dirname,'../dist/index.html'),

登录后复制

第5步:在webpackage.prod.conf.js中使用构建环境参数

对build/webpackage.prod.conf.js文件进行修改,调整env常量的生成方式。

// 个性env常量的定义// const env = require('../config/prod.env')const env = config.build[process.env.env_config+'Env']

登录后复制

第6步:调整build/build.js

删除process.env.NODE_ENV的赋值,修改spinner的定义,调整后的内容如下:

'use strict'require('./check-versions')()// 注释掉的代码// process.env.NODE_ENV = 'production'const ora = require('ora')const rm = require('rimraf')const path = require('path')const chalk = require('chalk')const webpack = require('webpack')const config = require('../config')const webpackConfig = require('./webpack.prod.conf')// 修改spinner的定义// const spinner = ora('building for production...')var spinner = ora('building for ' + process.env.NODE_ENV + ' of ' + process.env.env_config+ ' mode...' )spinner.start()//更多的其它内容,不需要做任何调整的内容 ...

登录后复制

补充:

vue2+webpack怎样分环境打包

今年有机会做了一个vue2的单页面应用的项目,从开发到上线经历了两个环境。测试环境以及正式环境我都是跑npm run build。这两个环境的变量当前是不一样的,每次打包都要去改变量,感觉有点小麻烦。后来参考同事的,他们项目里面分环境跑不同的命令,得到不同的包。例如测试环境npm run test ,正式环境 npm run build。

  需在文件config/prod.env.js配置  

const target = process.env.npm_lifecycle_event;  if (target == 'test') {  //测试  var obj = {  NODE_ENV: '"production"',  //post用当前域名  API_ROOT: '""',  //数据字典  API_ROOT_DICT:'"http://test.gw.fdc.com.cn"',  }}else {  //线上  var obj = {  NODE_ENV: '"production"',  //post用当前域名  API_ROOT: '""',  //数据字典  API_ROOT_DICT:'"http://gw.fdc.com.cn"',  }}module.exports = obj;

登录后复制

npm 提供一个npm_lifecycle_event变量,返回当前正在运行的脚本名称,比如pretest、test、posttest等等。所以,可以利用这个变量,在同一个脚本文件里面,为不同的npm scripts命令编写代码。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

Vue中的slots/scoped slots应该如何使用

vue组件中slot插口的使用详解

以上就是Vue项目应该怎么分环境打包的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2774597.html

(0)
上一篇 2025年3月8日 14:08:46
下一篇 2025年3月8日 14:10:08

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Vue的单页应用怎么引用样式文件

    这次给大家带来Vue的单页应用怎么引用样式文件,Vue的单页应用引用样式文件的注意事项有哪些,下面就是实战案例,一起来看一下。 问题描述 对于.vue的文件来说,也是由结构、行为、样式三部分组成,在样式部分有个scoped的属性,也就是当前…

    2025年3月8日
    200
  • Vue项目怎样分环境打包

    这次给大家带来Vue项目怎样分环境打包,Vue项目分环境打包的注意事项有哪些,下面就是实战案例,一起来看一下。 第1步:安装cross-env 在项目目录下运行如下命令安装cross-env,我的ide是webstorm,要以直接在ide里…

    编程技术 2025年3月8日
    200
  • Vue的轮播组件怎么使用

    这次给大家带来Vue的轮播组件怎么使用,使用Vue轮播组件的注意事项有哪些,下面就是实战案例,一起来看一下。 本文章采用Vue结合css3来实现轮播图。 首先要了解的是Vue的动画原理。在vue中,如果我们要给元素设置动画效果,则需要使用一…

    编程技术 2025年3月8日
    200
  • vue slot怎么在子组件中显示父组件传递

     这次给大家带来vue slot怎么在子组件中显示父组件传递,vue slot在子组件中显示父组件传递的注意事项有哪些,下面就是实战案例,一起来看一下。 父组件使用没有指定slot属性,默认为default 在slot中可以使用默认值,如果…

    编程技术 2025年3月8日
    200
  • element UI怎么导出Excel

     这次给大家带来element UI怎么导出Excel,element UI导出Excel的注意事项有哪些,下面就是实战案例,一起来看一下。 1、安装相关依赖 主要是两个依赖 npm install –save xlsx file-sav…

    编程技术 2025年3月8日
    200
  • 根据代码环境选择baseurl的方法

    这次给大家带来根据代码环境选择baseurl的方法,根据代码环境选择baseurl方法的注意事项有哪些,下面就是实战案例,一起来看一下。 配置通用的API前缀可以更好在本地通过接口代理转发获取数据、或者部署时在Nginx中做反向代理,但是项…

    编程技术 2025年3月8日
    200
  • 使用mint-ui时间插件时怎么获取选择值

    这次给大家带来使用mint-ui时间插件时怎么获取选择值,使用mint-ui时间插件获取选择值的注意事项有哪些,下面就是实战案例,一起来看一下。 {{pickerValue}}data () { return { pickerValue:n…

    编程技术 2025年3月8日
    200
  • VueRouter的导航守卫应该怎么使用

    这次给大家带来VueRouter的导航守卫应该怎么使用法,VueRouter的导航守卫使用的注意事项有哪些,下面就是实战案例,一起来看一下。 简介 主要用来通过跳转或取消的方式守卫导航。 例如判断登录信息:没登录全部跳到登录页。判断必要操作…

    编程技术 2025年3月8日
    200
  • vue-cli+webpack怎样搭建vue开发环境

    这次给大家带来vue-cli+webpack怎样搭建vue开发环境,vue-cli+webpack搭建vue开发环境的注意事项有哪些,下面就是实战案例,一起来看一下。 在这里我们需要首先下载node,因为我们要用到npm包下载,是基于nod…

    编程技术 2025年3月8日
    200
  • Angular4输入与输出怎么使用

    这次给大家带来Angular4输入与输出怎么使用,使用Angular4输入与输出的注意事项有哪些,下面就是实战案例,一起来看一下。 Angular4输入属性 输入属性通常用于父组件向子组件传递信息 举个栗子:我们在父组件向子组件传递股票代码…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论