웹 팩 3.0 업그레이드 4.0 방법 절차
5037 단어 webpack3.0업그레이드4.0
포장 효율 을 높이 기 위해 웹 팩 3.11 을 바탕 으로 업 그 레이 드 를 했 습 니 다.웹 팩 4.0 발표 이후 0 설정 웹 팩 은 프로젝트 자체 가 제공 하 는'포장'과'압축'기능 을 최적화 시 켰 습 니 다.프로젝트 에서 vue-cli 의 기본 설정 대신 4.0 을 사용 하면 문제 가 적 을 수 있 습 니 다.
2.설치/업그레이드 의존
이러한 의존 도 는 build 과정 에서 새로운 교체 나 오류 보고 에 의존 하 는 것 을 발견 하고 점차적으로 교체 하 는 것 입 니 다.여러 개의 구 덩이 를 만 나 려 면 먼저 webpack,webpack-cli 를 대응 하 는 버 전 으로 업그레이드 할 수 있 습 니 다.
devDependencies:
"extract-text-webpack-plugin": "^4.0.0-beta.0"
"html-webpack-plugin": "^4.0.0-beta.14"
"mini-css-extract-plugin": "^0.9.0" ( optimize-css-assets-webpack )
"preload-webpack-plugin": "^3.0.0-beta.4"
"script-ext-html-webpack-plugin": "^2.1.3"
"vue-loader": "^15.3.0"
"webpack": "^4.26.1"
"webpack-cli": "^3.1.2"
"webpack-dev-server": "^3.2.1"
"script-ext-html-webpack-plugin": "^2.1.3"
3.닥 친 문제웹 팩 업그레이드 후 build 오류:ERROR in./src/app.vue
Module Error (from ./node_modules/vue-loader/lib/index.js
해결:vue-loader 를 15.3.0 으로 업그레이드,
webpack.base.conf.js 추가
const {VueLoaderPlugin} = require('vue-loader')
module.exports
plugins:[new VueLoaderPlugin()]
설정 파일 수정 webpack.prod.conf.js:webpack.optimize.CommonsChunkPlugin has been removed, please use config.optimization.splitChunks instead.
해결:
webpack.prod.conf.js webpackConfig :
optimization: {
noEmitOnErrors: true,
concatenateModules: true,
splitChunks: {
chunks: 'all',
name: 'common',
},
runtimeChunk: {
name: 'runtime'
}
}
webpack.prod.conf.js webpackConfig :
optimization:{
namedModules: true
},
Plugin could not be registered at ‘html-webpack-plugin-before-html-processing'. Hook was not found.해결:
npm i preload-webpack-plugin@next -D
Tapable.plugin is deprecated. Use new API on .hooks instead문제:extract-text-webpack-plugin 호 환 문제,기능:extract css into its own file
해결:extract-text-webpack-plugin 마 운 트 해제,mini-css-extract-plugin 설치
new MiniCssExtractPlugin({
filename: utils.assetsPath('css/[name].[contenthash].css'),
allChunks: false,
}),
build 오류:Type Error 에 러:정의 되 지 않 은 프로 퍼티'해시'를 읽 을 수 없습니다.해결:
//
const SpeedMeasurePlugin = require("speed-measure-webpack-plugin");
const smp = new SpeedMeasurePlugin();
WARNING in configurationThe ‘mode' option has not been set, webpack will fallback to ‘production' for this value. Set ‘mode' option to ‘development' or ‘production' to enable defaults for each environment.
You can also set it to ‘none' to disable any default behavior. Learn more: https://webpack.js.org/concepts/mode/
해결:webpackConfig 추가 모드:'production'
Tapable.plugin is deprecated. Use new API on .hooks instead
해결:
npm i --save-dev extract-text-webpack-plugin@next
extract-text-webpack 에 다운로드 합 니 다[email protected]Error: webpack.optimize.CommonsChunkPlugin has been removed, please use config.o ptimization…
해결:
optimization: {
splitChunks: {
cacheGroups: {
commons: {
name: "commons",
chunks: "initial",
minChunks: 2
}
}
}
},
Unhandled rejection Error: “dependency” is not a valid chunk sort mode
new HtmlWebpackPlugin({
filename: config.build.index,
template: 'index.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
},
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
chunksSortMode: 'dependency'
}),
해결:chunks SortMode 를 auto 또는 주석 으로 변경이로써:npm run build 정상
다음 npm run dev 를 조정 하여 직접 실행 에 성공 하 였 습 니 다.
4.총화
cache 가 열 린 상태 에서 원래 포장 시간 22s 정도,현재 build 가 가장 빠 른 8s 정도 입 니 다.
업그레이드 아이디어:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
macOS Catalina로 업그레이드하면 "사용 가능한 공간이 부족합니다"오류가 발생한 경우 해결 방법macOS를 Mojave에서 Catalina로 업그레이드하면 컴퓨터에 macOS를 설치할 수 없습니다. 라고 나와 설치가 도중에 멈춰 버렸다. 다시 같은 메시지로 OS 부팅할 수 없는 상태. MAC 지원팀에 문의하면...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.