• Vue项目根据不同运行环境打包项目


    前提

    1. 项目是直接通过 vue-cli脚手架 生成的;
    2. 假设在项目开发中,分为三个环境 --
      · 测试环境
      · 预生产环境
      · 生产环境

    每个环境的接口地址都是不同的,而 vue-cli 给出的环境只有 devprod 这两个。虽然可以选择每次打包项目前手动修改 config/prod.env.js 中的 BASE_API 属性值,再运行 npm run build 打包项目就OK了,但还是挺烦的。如果能根据不同环境打包就一劳永逸了

    步骤

    第一步 安装依赖 cross-env

    使用 cross-env 解决跨平台问题。在终端运行:

    
    npm install cross-env --save-dev  // 安装 cross-env 依赖
    
    

    此依赖写入 devDependencies 中,仅在开发环境中使用此依赖。

    第二步 修改 package.json 文件

    package.jsonscripts 属性中 build 命令替换为:

    
    // 生产环境
    "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", 
    // 预生产环境
    "build:prep": "cross-env NODE_ENV=production env_config=prep node build/build.js"  
    
    第三步 添加各环境参数

    config 目录下添加 sit.dev.js(测试环境)prep.dev.js(预生产环境)
    那么 config 目录下有 三个js文件 分别对应 三个环境:

    (1) sit.dev.js(测试环境)

    
    module.exports = {
      NODE_ENV: '"production"',
      ENV_CONFIG: '"sit"',
      BASE_API: '"xxx"'    // 测试环境接口地址
    }
    

    (2) prep.dev.js(预生产环境)

    
    module.exports = {
      NODE_ENV: '"production"',
      ENV_CONFIG: '"prep"',
      BASE_API: '"xxx"'    // 预生产环境接口地址
    }
    

    (3) prod.dev.js(生产环境)

    
    module.exports = {
      NODE_ENV: '"production"',
      ENV_CONFIG: '"prod"',
      BASE_API: '"xxx"'     // 生产环境接口地址
    }
    
    第四步 修改 build/webpack.prod.conf.js 文件
    
    const env = require('../config/prod.env')
    
    

    使用构建环境参数,将 build/webpack.prod.conf.js 中的此行代码修改为:

    
    const env = require('../config/' + process.env.env_config + '.env')
    
    第五步 打包项目
    
    // 测试环境打包项目
    npm run build:sit
    
    // 预生产环境打包项目
    npm run build:prep
    
    // 生产环境打包项目
    npm run build:prod
    

    -- END --
    不足之处,欢迎指出;不喜请绕道,谢谢!

    来源:https://segmentfault.com/a/1190000016410207

  • 相关阅读:
    算法初步——哈希表B.1038统计同成绩学生
    算法初步——哈希表B10133.旧键盘打字 (注意bool型数组的赋值为true的方法)
    算法初步——哈希表B1029/A1084. 旧键盘
    算法初步——排序 A1012.The Best Rank(25)
    《思维导图》——东尼博赞
    算法初步——排序B1015/A1062.德才论
    入门模拟——(字符串处理)A1001. A+B Format(20)
    RMQ问题(线段树+ST算法)
    PKU 2406 Power Strings(KMP最长循环不重叠字串)
    KMP算法 kuangbin
  • 原文地址:https://www.cnblogs.com/lovellll/p/10139210.html
Copyright © 2020-2023  润新知