zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Open Live Writer增加代码插件
    WinSCP列出’/’目录项出错
    Ueditor中增加迅雷下载支持
    Ueditor设置默认字体
    PDF编辑、删除、替换某页面或文字
    个人站长如何使用svn发布到服务器不遗漏文件
    PHP 测试程序运行时间 microtime函数用法
    LeetCode---Stack && Heap
    LeetCode---Binary Search
    LeetCode---Hash Table
  • 原文地址:https://www.cnblogs.com/lovellll/p/10139210.html
Copyright © 2011-2022 走看看