Vue项目分环境打包的实现步骤

转:https://blog.csdn.net/xinzi11243094/article/details/80521878

方法一:亲测真的有效

在项目开发中,我们的项目一般分为开发版、测试版、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里的内容,修改后的内容如下:

?


1

2

3

4

5

6

‘use strict‘

module.exports = {

 NODE_ENV: ‘"production"‘,

 EVN_CONFIG:‘"prod"‘,

 API_ROOT:‘"/apis/v1"‘

}

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

?


1

2

3

4

5

6

7

8

9

10

11

12

‘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是配制的代理地址。

?


1

2

3

4

5

module.exports = merge(prodEnv, {

 NODE_ENV: ‘"development"‘,

 VN_CONFIG: ‘"dev"‘,

 API_ROOT: ‘"api/apis/v1"‘

})

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

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

?


1

2

3

4

5

6

7

8

"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中使用到

?


1

2

3

4

5

6

7

8

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常量的生成方式。

?


1

2

3

// 个性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的定义,调整后的内容如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

‘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()

//更多的其它内容,不需要做任何调整的内容 ...

方法二: 此法只需要改变 prod.env.js一个文件,还没尝试,下次尝试一遍下来分享心得

vue2+webpack怎样分环境打包

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

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

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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命令编写代码。

原文地址:https://www.cnblogs.com/mmzuo-798/p/10279215.html

时间: 2024-09-30 10:51:20

Vue项目分环境打包的实现步骤的相关文章

前端自动分环境打包(vue和ant design)

现实中的问题:有时候版本上线的时候,打包时忘记切换环境,将测试包推上正式服务器,那你就会被批了. 期望:在写打包的命令行的时候就觉得自己在打包正式版本,避免推包时候的,不确信自己的包是否正确. 既然有了期望,那么就要开始百度如何去实现呢. 下面先开始介绍ant design的方法: ant design的打包工具是roadhog,那么从roadhog下手. 在roadhog文档中,发现define的配置可以传递给代码. 在ant design pro的issue中搜索中,发现环境变量的配置. 我

maven 分环境打包

一,创建分环境属性配置文件 src/build-config/build-develop.propertiessrc/build-config/build-product.propertiessrc/build-config/build-test.properties 例: build-develop.properties #数据库配置build.jdbc.url = jdbc:oracle:thin:@ip:port:databasebuild.jdbc.username = namebuil

Spring boot项目分环境Maven打包,动态配置文件,动态配置项目

Spring boot Maven 项目打包 使用Maven 实现多环境 test dev prod 打包 项目的结构 在下图中可用看出,我们打包时各个环境需要分开,采用 application-环境.yml 的方式命名 环境配置开始 首先我们需要在application.yml文件中配置 spring.profiles.active = @[email protected]这里的proofileAction 是我们下面要用到的变量 spring: profiles: active: @[ema

在Azure DevOps Server (TFS)中实现VUE项目的自动打包

概述 Vue.js(读音 /vju?/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.由于它在数据绑定.页面展示和使用简单方面有很大的优势,逐渐被越来越多的前端开发团队使用.本文介绍基于Azure DevOps Server,如何实现Vue框架前端代码的编译和打包. 代理服务器配置 Azure DevOps Server的自动化流水线,都基于代理服务器Agent Server,需要在你的代理服务器上安装部署好VUE自动打包所需要的环境,这里主要说明如何安装VUE需要Node

Vue ---- 项目与环境搭建 初始项目结构 Vue生命周期

目录 1. vue环境搭建 2. Vue项目搭建 pycharm配置并启动vue项目 3 . 认识项目 1. vue项目目录结构 2. 配置文件:vue.config.js 3. main.js 4. vue文件 5.App.vue 4.Vue生命周期(重点!!!!!!!!!) main.js render渲染函数 补充: 总结: 1. vue环境搭建 """ 类似于 vue -- Django node -- python npm -- pip ""&q

VUE项目多环境配置.md

目录 一.了解webpack.DefinePlugin 二.项目中如何配置多环境 web项目开发,通常需要有开发环境.测试环境和生产环境,用于配置不同的环境变更,如调用本地接口.测试接口和生产接口,VUE项目是前后端完全分离的框架,像是web界的C/S构架,在做VUE前端开发时,就需要用开发环境甚至于mock环境,等项目上线时,则需要使用生产的环境变量进行打包部署. 一.了解webpack.DefinePlugin webpack是静态模块打包器,可以将vue项目中所有文件打包成一个或多个jsb

搭建Vue项目开发环境(一)

1.初始化 Vue 项目: (1)彻底删除 cnpm (假如已安装过): npm uninstall cnpm -g (2)安装 cnpm 淘宝的包管理器(由于 npm 的插件都是从国外服务器下载,因网络不稳定,可能出现异常,所以需要更换为 cnpm): npm install cnpm -g --registry=https://registry.npm.taobao.org (3)查看包管理器是否安装成功: npm config get registry (4)全局安装 vue-cli2.x

VUE项目用hbuilder 打包为手机APP

一.测试项目是否可以正确运行    指令:npm run dev 首先我们先建立一个vue的项目,本人用的是vue-cli随便建立的,然后运行项目 不必非得是像我这样的,这一步的目的只是测试一下咱们的vue项目是否可以运行 二.修改路径(assetsPublicPath: './') 打开我们config中的js文件,修改assetsPublicPath的路径为"./"(下图的右下角位置) 三.打包文件  指令:npm run build 打包后会生成dist文件 四.把dist文件变

spring-boot分环境打包为war包

1.启动类修改 @EnableSwagger2 @SpringBootApplication public class CustWebAcApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(CustWebAcApplication.class, args); } @Override protected SpringAppl