首頁 web前端 js教程 Vue專案如何分環境打包

Vue專案如何分環境打包

Apr 11, 2018 pm 01:35 PM
怎樣 打包 環境

這次帶給大家Vue專案怎樣分環境打包,Vue專案分環境打包的注意事項有哪些,下面就是實戰案例,一起來看一下。

第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裡的內容,修改後的內容如下:

'use strict'
module.exports = {
 NODE_ENV: '"production"',
 EVN_CONFIG:'"prod"',
 API_ROOT:'"/apis/v1"'
}
登入後複製

分別對test.env.js和pre.env.js檔案內容進修修改,修改後的內容如下:

'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是配製的代理位址。

module.exports = merge(prodEnv, {
 NODE_ENV: '"development"',
 VN_CONFIG: '"dev"',
 API_ROOT: '"api/apis/v1"'
})
登入後複製

步驟3:修改專案package.json檔案

# 對package.json檔案中的scripts內容進行個性,加入新定義的幾種環境的打包過程,裡的參數與前面的調協保持一致。

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

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常數的產生方式。

// 个性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的定義,調整後的內容如下:

'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()
//更多的其它内容,不需要做任何调整的内容 ...
登入後複製

補充:

vue2 webpack怎樣分環境打包

# 今年有機會做了一個vue2的單頁應用的項目,從開發到上線經歷了兩個環境。測試環境以及正式環境我都是跑npm run build。這兩個環境的變數目前是不一樣的,每次打包都要去改變量,感覺有點麻煩。後來參考同事的,他們專案裡面分環境跑不同的命令,得到不同的包。例如測試環境npm run test ,正式環境 npm run build。

  需在檔案config/prod.env.js設定  

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指令寫程式碼。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

webpack的行動端自動化建構rem方法詳解

使用angular2模組和共享模組的詳細介紹

以上是Vue專案如何分環境打包的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

無法引導到Windows復原環境 無法引導到Windows復原環境 Feb 19, 2024 pm 11:12 PM

Windows復原環境(WinRE)是用來修復Windows作業系統錯誤的環境。進入WinRE後,您可以執行系統還原、出廠重設、卸載更新等操作。如果無法引導到WinRE,本文將指導您使用修復程式解決此問題。無法引導至Windows復原環境如果無法引導至Windows復原環境,請使用下方提供的修復程式:檢查Windows復原環境的狀態使用其他方法進入Windows復原環境您是否意外刪除了Windows復原分割區?執行Windows的就地升級或全新安裝下面,我們已經詳細解釋了所有這些修復。 1]檢查Wi

Python和Anaconda之間有什麼區別? Python和Anaconda之間有什麼區別? Sep 06, 2023 pm 08:37 PM

在本文中,我們將了解Python和Anaconda之間的差異。 Python是什麼? Python是一種開源語言,非常重視使程式碼易於閱讀並透過縮進行和提供空白來理解。 Python的靈活性和易於使用使其非常適用於各種應用,包括但不限於對於科學計算、人工智慧和數據科學,以及創造和發展的線上應用程式。當Python經過測試時,它會立即被翻譯轉化為機器語言,因為它是一種解釋性語言。有些語言,例如C++,需要編譯才能被理解。精通Python是一個重要的優勢,因為它非常易於理解、開發,執行並讀取。這使得Pyth

分享PyCharm專案打包的簡易方法 分享PyCharm專案打包的簡易方法 Dec 30, 2023 am 09:34 AM

簡單易懂的PyCharm專案打包方法分享隨著Python的流行,越來越多的開發者使用PyCharm作為Python開發的主要工具。 PyCharm是功能強大的整合開發環境,它提供了許多方便的功能來幫助我們提高開發效率。其中一個重要的功能就是專案的打包。本文將介紹如何在PyCharm中簡單易懂地打包項目,並提供具體的程式碼範例。為什麼要打包專案?在Python開發

如何使用Python正規表示式進行程式碼打包與分發 如何使用Python正規表示式進行程式碼打包與分發 Jun 23, 2023 am 09:31 AM

隨著Python程式語言的日益流行,越來越多的開發者開始使用Python編寫程式碼。但是在實際使用中,我們常常需要將這些程式碼打包並分發給其他人使用。本文將介紹如何使用Python正規表示式進行程式碼打包與分發。一、Python程式碼打包在Python中,我們可以使用setuptools和distutils等工具來打包我們的程式碼。這些工具可以將Python檔、模組

怎麼使用pkg將Node.js專案打包為執行檔? 怎麼使用pkg將Node.js專案打包為執行檔? Jul 26, 2022 pm 07:33 PM

如何用pkg打包nodejs可執行檔?以下這篇文章跟大家介紹一下使用pkg將Node.js專案打包為執行檔的方法,希望對大家有幫助!

VSCode功能詳解:它如何幫助你提高工作效率? VSCode功能詳解:它如何幫助你提高工作效率? Mar 25, 2024 pm 05:27 PM

VSCode功能詳解:它如何幫助你提高工作效率?隨著軟體開發產業的不斷發展,開發人員們追求工作效率和程式碼品質成為了他們工作中的重要目標。在這個過程中,程式碼編輯器的選擇成為了一項關鍵的決策。而在眾多的編輯器中,VisualStudioCode(簡稱VSCode)憑藉其強大的功能和靈活的擴展性受到了廣大開發者的喜愛。本文將詳細介紹VSCode的一些功能,探討

Python 應用的獨立宣言:PyInstaller 的自由之路 Python 應用的獨立宣言:PyInstaller 的自由之路 Feb 20, 2024 am 09:27 AM

PyInstaller:Python應用的獨立化PyInstaller是一款開源的python打包工具,它將Python應用程式及其相依性打包為一個獨立的執行檔。這個過程消除了對Python解釋器的依賴,同時允許應用程式在各種平台上運行,包括windows、MacOS和linux。打包過程PyInstaller的打包過程相對簡單,涉及以下步驟:pipinstallpyinstallerpyinstaller--onefile--windowedmain.py--onefile選項建立一個單一

linux打包是什麼意思 linux打包是什麼意思 Feb 23, 2023 pm 06:30 PM

在linux中,打包指的是一個檔案或目錄的集合,而這個集合被儲存在一個檔案中;簡單來說,打包是指將一大堆檔案或目錄變成一個總的檔案。打包檔案沒有經過壓縮,因此它佔用的空間是其中所有檔案和目錄的總和。

See all articles