如何操作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命令编写代码。

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

推荐阅读:

Angular2中如何使用Dom

React中使用Vuex方法详解

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

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

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

(0)
上一篇 2025年3月8日 10:52:00
下一篇 2025年3月8日 10:59:04

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

相关推荐

  • 怎样自定义设置vue项目打开关闭eslint校验

    这次给大家带来怎样自定义设置vue项目打开关闭eslint校验,自定义设置vue项目打开关闭eslint校验的注意事项有哪些,下面就是实战案例,一起来看一下。 简介eslint eslint是一个JavaScript的校验插件,通常用来校验…

    2025年3月8日 编程技术
    200
  • vue根据环境传递参数打包不同域名方法详解

    这次给大家带来vue根据环境传递参数打包不同域名方法详解,vue根据环境传递参数打包不同域名的注意事项有哪些,下面就是实战案例,一起来看一下。 项目开发中,前端在配置后端api域名时很困扰,常常出现: 本地开发环境: api-dev.dem…

    编程技术 2025年3月8日
    200
  • Vue项目里跨域处理方法

    这次给大家带来Vue项目里跨域处理方法,Vue项目里跨域处理的注意事项有哪些,下面就是实战案例,一起来看一下。 问题描述 前端 vue 框架,后台 php,百度跨域问题后台加这段代码 header(“Access-Control-Allow…

    2025年3月8日
    200
  • 本地开发环境不能用IP访问如何处理

    这次给大家带来本地开发环境不能用IP访问如何处理,本地开发环境不能用IP访问的注意事项有哪些,下面就是实战案例,一起来看一下。 问题描述: 只能用http://localhost:8080访问项目,不能用http://本机IP:8080访问…

    2025年3月8日
    200
  • vue环境传递参数打包不同域名代码分析

    这次给大家带来vue环境传递参数打包不同域名代码分析,vue环境传递参数打包不同域名的注意事项有哪些,下面就是实战案例,一起来看一下。 测试环境: api-test.demo.com 线上生产环境: api.demo.com, 这次是在Vu…

    编程技术 2025年3月8日
    200
  • vue-cli打包步骤详解

    这次给大家带来vue-cli打包步骤详解,vue-cli打包的注意事项有哪些,下面就是实战案例,一起来看一下。 1、打包命令是npm run build,这个命令实际上是在package.json中,scripts中build所对应的命令;…

    2025年3月8日 编程技术
    200
  • vue项目打包传送至服务器

    这次给大家带来vue项目打包传送至服务器,vue项目打包传送至服务器的注意事项有哪些,下面就是实战案例,一起来看一下。 当我们将 vue 项目完成后,面临的就是如何将项目进行打包上线,放到服务器中。我使用的是 vue-cli(simple)…

    2025年3月8日 编程技术
    200
  • 怎样实现Vue微信项目按需授权登录

    这次给大家带来怎样实现Vue微信项目按需授权登录,实现Vue微信项目按需授权登录的注意事项有哪些,下面就是实战案例,一起来看一下。 项目采用Vue作为开发框架,用户浏览页面时有两种情况: 一种是需要用户先登录之后才能继续浏览; 另一种是用户…

    编程技术 2025年3月8日
    200
  • 前端项目中初始化项目结构

    这次给大家带来前端项目中初始化项目结构,前端项目中初始化项目结构的注意事项有哪些,下面就是实战案例,一起来看一下。 我平时工作会做移动端H5多一些,所以我通过webpack搭建了自己的前端工程(x-build),主要是编译stylus、ja…

    编程技术 2025年3月8日
    200
  • 怎样使用Vue打包优化code spliting

    这次给大家带来怎样使用Vue打包优化code spliting,使用Vue打包优化code spliting的注意事项有哪些,下面就是实战案例,一起来看一下。 在http1的时代,比较常见的一种性能优化就是合并http的请求数量,通常我们会…

    2025年3月8日 编程技术
    200

发表回复

登录后才能评论