在新建好的項目中,一般執行npm run build就是打包了,但此時只能打包到一個環境,不同環境需要配置不同的地址,可以手動更改接口的地址,也可以自行配置命令而不需要每次打包進行地址切換,步驟如下:
文件結構如下圖:
1)在config文件內新建test.env.js文件:
"use strict" module.exports = { NODE_ENV: ""testing"", ENV_CONFIG:""test"" }
2)修改config內的prod.env.js文件:
"use strict" module.exports = { NODE_ENV: ""production"", ENV_CONFIG:""prod"" }
3)對build中webpack.prod.conf.js做如下修改:
// const env = require("../config/prod.env") //原始代碼
或者為
// const env = process.env.NODE_ENV === "testing" //原始代碼 // ? require("../config/test.env") // : require("../config/prod.env") // console.log(process.env.NODE_ENV);
修改為:
const env = config.build[process.env.env_config+"Env"]
4)config中的index.js 文件中build部分代碼修改如下:
build: { prodEnv: require("./prod.env"), testEnv: require("./test.env"), // Template for index.html index: path.resolve(__dirname, "../dist/index.html"), // ····余下的代碼就不寫了 }
5)確認安裝cross-env
npm install cross-env –save-dev
6)對build文件夾下的build.js的修改:
"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") // const spinner = ora("building for production...") //注釋掉 var spinner = ora("building for " + process.env.NODE_ENV + " of " + process.env.env_config+ " mode..." ) spinner.start()
7)修改package.json文件(在script里面添加):
"scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "unit": "jest --config test/unit/jest.conf.js --coverage", "e2e": "node test/e2e/runner.js", "test": "npm run unit && npm run e2e", "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs", "build": "node build/build.js", "build--test": "cross-env NODE_ENV=testing env_config=test node build/build.js", "build--prod": "cross-env NODE_ENV=production env_config=prod node build/build.js" },
8)在common文件下新建env.js,對環境進行判斷并切換,內容如下:
/* * 配置編譯環境和線上環境之間的切換 * baseUrl: 域名地址 * routerMode: 路由模式 */ let baseUrl = ""; let routerMode = "history"; let DEBUG = false; let cancleHTTP = [];//取消請求頭設置; //注:下面的baseUrl地址為假地址,只是模擬的,無法調通。 if (process.env.NODE_ENV == "development") { baseUrl = "https://10.248.65.100/GetTravelMethod"; DEBUG = true; }else if(process.env.NODE_ENV == "production"){ baseUrl = "https://10.248.65.200/GetTravelMethod"; DEBUG = false; }else if(process.env.NODE_ENV == "testing"){ baseUrl = "https://10.248.65.150/GetTravelMethod"; DEBUG = false; } export{ baseUrl, routerMode, DEBUG, ROLE, cancleHTTP }
想要test環境下則運行:
npm run build--test
相應的改為production環境則運行:
npm run build--prod
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104384.html
摘要:實現輸入一行命令,執行兩條指令,分別打包線上生產環境和線上測試環境的代碼。這樣配置好之后,只要執行,它會自動先執行正式環境構建打包,完成之后再自動執行測試環境的構建打包,是方便接著再配置自動壓縮,這里就需要使用到一個的插件。 需求 首先介紹一下本項目的背景,是基于 vue-cli3.1.1 的單頁應用,目前測試環境和生產環境都在線上,并且都在同一個域名下,其中生產環境部署在根目錄下,測...
摘要:根據依賴關系,按照配置文件把模塊函數分組打包成若干個。會隨著自身的的修改,而發生變化。只需要在命令行運行時帶上參數就搞定一些插件的廢除和替換廢棄了頂替者用屬性變化壓縮優化代碼分割,下面詳解還有一些新的插件,。 1. 前端工程化項目打包歷史 前端工程化之前的時代略過 1. 半自動執行腳本來壓縮合并文件 自從xmlhttprequest被挖掘出來,網頁能夠和服務端通訊,js能做的事越來越多...
摘要:根據依賴關系,按照配置文件把模塊函數分組打包成若干個。會隨著自身的的修改,而發生變化。只需要在命令行運行時帶上參數就搞定一些插件的廢除和替換廢棄了頂替者用屬性變化壓縮優化代碼分割,下面詳解還有一些新的插件,。 1. 前端工程化項目打包歷史 前端工程化之前的時代略過 1. 半自動執行腳本來壓縮合并文件 自從xmlhttprequest被挖掘出來,網頁能夠和服務端通訊,js能做的事越來越多...
摘要:成員可以在自己喜歡的桌面系統上開發程序,代碼卻能統一在封裝好的環境里運行,非常霸氣。打包分發當你配置好開發環境后,退出并關閉虛擬機。 博文參考 http://rmingwang.com/vagrant-commands-and-config.html https://www.vagrantup.com/docs/virtualbox/configuration.html https:/...
閱讀 2743·2021-10-26 09:50
閱讀 2385·2021-10-11 11:08
閱讀 2128·2019-08-30 15:53
閱讀 1906·2019-08-30 15:44
閱讀 2382·2019-08-28 18:12
閱讀 2519·2019-08-26 13:59
閱讀 2852·2019-08-26 12:19
閱讀 2751·2019-08-26 12:09