vue-cli项目配置多环境

vue-cli 项目配置多环境

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
  1. 修改 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: ‘/‘,                          // 资源公共路径

原文地址:https://www.cnblogs.com/chifung/p/9872126.html

时间: 2024-10-15 05:49:13

vue-cli项目配置多环境的相关文章

vue 3.0 配置开发环境和测试环境

1.在项目里的根目录里加入了3个文件(与vue.config.js同级) .env   线上环境 .env.development 开发环境 .env.testbuild  测试环境 2.在上边3个文件中: 使用VUE_APP_URL = “接口url”书写格式:VUE_APP_[自定义name] 3在pakejson里面配置打包环境 4.在config里面部分配置 module.exports = { publicPath:'/',    // 公共路径 outputDir: 'dist',

vue多项目配置,vuecli3.0+cross-env配置问题

cross-env相信大家都用过,这里就不过多描述,首先我们来安装cross-env npm install cross-env 或者yarn add cross-env 安装完成之后就可以在项目中使用,有些脚手架自带有cross-env(Ant-Design-Pro)所以就省去安装了 今天给大家介绍的是vue-cli脚手架3.0+之后cross-env的使用方式 之前一直使用的vue-cli2.0,2.0配置文件很多,在开发和生产配置文件中配置了cross-env中的变量之后就能正常使用了,

[Vue CLI 3] 配置解析之 indexPath

在 vue.config.js 配置中有一个 indexPath 的配置,我们先看看它有什么用? 用来指定 index.html 最终生成的路径(相对于 outputDir) 先看看它的默认值:在文件 @vue/cli-service/lib/options.js 中 indexPath: joi.string() 默认值: indexPath: 'index.html' 使用案例: 我们在 vue.config.js 中配置: indexPath: '1/2/3/b.html' 最终在编译之后

Vue.js项目的开发环境搭建与运行

写作背景:手上入一个用Vue框架写的微信公众号项目,根据公司安排,我负责项目源代码的验收工作(当然专业的工作检测会交给web开发人员,我只是想运行起来看一看). 1 开发环境安装步骤: (一)安装node.js(JavaScript运行环境runtime) 从node.js官网下载并安装node,安装过程很简单,一路“下一步”就可以完成. 完成之后,开发命令行工具,输入 node -v 如果出现相应的版本号,则说明安装成功. 另外,npm是node.js下的包管理器,npm能很好的和诸如webp

vue cli 项目创建

初始化项目 我们用vue init命令来初始化项目,具体看一下这条命令的使用方法. $ vue init <template-name> <project-name>$ vue init <template-name> <project-name>init:表示我要用vue-cli来初始化项目 <template-name>:表示模板名称,vue-cli官方为我们提供了5种模板, webpack-一个全面的webpack+vue-loader的模

vue cli 项目的提交

前提: 配置git.以及git的ssh key信息 假设已经都安装好了,此处我用vue项目为例,因为vue-cli已经默认为我生成了ignore文件 在项目目录 初始化本地仓库,会创建一个.git目录 git init 将项目所有文件(未被ignore)添加到仓库 git add . 将add文件提交到本地仓库 git commit -m '提交信息' 本地仓库关联远程git仓库 git remote add origin git仓库 本地仓库代码提交到服务器 git push -u origi

[Vue CLI 3] 配置解析之 css.extract

大家还记得我们在老版本中,对于线上环境配置中会把所有的 css 多打成一个文件: 核心是使用了插件 extract-text-webpack-plugin,方式如下: 第一步都是加载插件 const ExtractTextPlugin = require('extract-text-webpack-plugin') 这个插件的描述如下: Extract text from a bundle, or bundles, into a separate file. 然后配置如下:(省去了 rules

Vue基础项目配置

一,使用Vuejs搭建项目需要一些基础配置,这样能使的编程过程事半功倍 首先下载nodejs,然后使用nodejs使用NPM命令下载VueCli3.0以上的Vue脚手架.通过脚手架可以使用Vue ui图形界面创建项目,也可以使用vue create xxx来使用命令行来创建项目. 创建项目之时最重要的选项就是使用配置文件最好各个配置文件分开,不要集中在<vue.confing.js>. 创建完项目之后启动项目npm run serve. 在项目目录打开一个新的命令提示行来安装Vue的插件和各种

Vuex内容解析和vue cli项目中使用状态管理模式Vuex

中文文档:vuex官方中文网站 一.vuex里面都有些什么内容? const store = new Vuex.Store({ state: { name: 'weish', age: 22 }, getters: { personInfo(state) { return `My name is ${state.name}, I am ${state.age}`; } } mutations: { SET_AGE(state, age) { commit(age, age); } }, acti