Vue前端打包的詳細流程
目錄
- 1、新增打包命令
- 2、執行打包程式碼
- 3、打包指定不同的環境變數
- 4、打包自定義檔案
- 4.1 移除三方包
- 4.2 gzip壓縮
- 5、打包發生錯誤:
1、新增打包命令
package.on
中新增配置
npm run build
釋出到線上的程式碼 不便於除錯
命令:
- ①npm run build:dev 開發調式環境
- ②npm run build:prod 線上除錯環境
"build:dev": "-cli-service build --mode dev","build:prod": "vue-cli-service build --mode prod"
2、執行打包程式碼
不可直接雙擊dist/index.html
需要放在http容器中執行:
serve tomcat nginx iis
本次使用
serve
下載serve: npm i -g serve
報錯:
Error: EPERM: operation not permitted,mkdir ‘C:\Program Files\nodejs\node global\node_modules.staging'
解決: 使用者—>個人使用者—>刪除.npmrc
檔案
啟動打包後的目錄: serve dist
3、打包指定不同的環境變數
新增環境變數:
- ① 開發:在根目錄下建立
.env.dev
- ② 線上:在根目錄下建立
.env.prod
檔案(與package.json中mode對http://www.cppcns.com應)
在需要動態指定變數的位置使用process.env.NODE_ENV
等
// .env.dev ##開發環境 NODE_ENV=development ##變數以VUE_APP_開頭 VUE_APP_URL=http://www.dev.com // .env.prod ##生產環境 NODE_ENV=production VUE_APP_URL=http://www.prod.com
4、打包自定義檔案
vuecli
是基於webpack
- vuecli零配置
- 不需要零配置可以指定
vue.config.js
npm run build:prod
少了註釋、空行、壓縮等
4.1 移除三方包
程式碼細分:
- ①三方包:
vue elementui axios
等 - ②開發程式碼:自己寫的
移出三方包: 使用三方提供cdn
(免費、收費)
步驟:
- ①找到三方包
cdn
資源,新增到public/index.html
- ②把之前
import
匯入的刪除 - ③在
vue.config.js
配置排除三方包
module.exports = {
// 開啟檔案訪問的相對路徑 獨立專案 通過專案根目錄訪問
publicPath: './',// 開發時需要 線上不www.cppcns.com需要 map-->提供程式碼對映 方便除錯程式碼
productionSourceMap: process.env.NODE_ENV == 'development' ? true: false,// 配置webpack
configureWebpack: config =>{
// config---vuecli預設配置
Object.assign(config,{
// 排除依賴包
externals: {
vue: 'Vue'
}
})
},}
4.2 gzip壓縮
下載 npm i -D compression-webpack-plugin
5、打包發生錯誤:
ERROR TypeError: Cannot read property ‘tapPromise' of undefined
TypeError: Cannot read property ‘tapPromise' of undefined錯誤原因: 腳手架配置gzip打包不支援這個客棧版本
解決: 使用npm install [email protected] --save-dev
在vue.config.js配置
打包會生成gz結尾的檔案:
let CompressionWebpackPlugin = require('compression-webpack-plugin') configureWebpack: config =>{ let plugins = [ new CompressionWebpackPlugin({ // 壓縮方式 algorithm: 'gzip',// 匹配壓縮檔案 test: /\.js$|\.$/,// 對於大於10k壓縮 threshold: 10240 }) ] if(process.env.NODE_ENV == 'production') { config.mode = "production" config.plugins = [...config.plugins,...plugins] } else { config.mode = 'development' } },
瀏覽器檢視:
- 請求頭:
Accept-Encoding: gzip,deflate,br
- 響應頭:
Content-Encoding: gzip
打包部署模式:
hash: 打包後dist直接在http容器中執行 線上一致
history: 打包後腳手架重新整理不會404 線上會404
解決方案:需要前端程式碼與後端一起部署 由後端負責跳轉前端
到此這篇關於Vue前端打包的詳細流程的文章就介紹到這了,更多相關Vue前端打包詳細流程內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!