国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

webpack4的遷移的使用方法

來源:懂視網 責編:小采 時間:2020-11-27 22:14:06
文檔

webpack4的遷移的使用方法

webpack4的遷移的使用方法:感覺是突然之間,webpack4的消息就滿天飛了,聽說打包速度提高了很多,還有最大的噱頭是實現了零配置,leader有一天就吩咐我說,有時間把我們的項目也升個級唄。好嘞。 1.x到2.x 這次升級跨度比較大,我們是從webpack1.x升級到4.x,因為1.x與2.x相差
推薦度:
導讀webpack4的遷移的使用方法:感覺是突然之間,webpack4的消息就滿天飛了,聽說打包速度提高了很多,還有最大的噱頭是實現了零配置,leader有一天就吩咐我說,有時間把我們的項目也升個級唄。好嘞。 1.x到2.x 這次升級跨度比較大,我們是從webpack1.x升級到4.x,因為1.x與2.x相差

感覺是突然之間,webpack4的消息就滿天飛了,聽說打包速度提高了很多,還有最大的噱頭是實現了零配置,leader有一天就吩咐我說,有時間把我們的項目也升個級唄。好嘞。

1.x到2.x

這次升級跨度比較大,我們是從webpack1.x升級到4.x,因為1.x與2.x相差挺大,所以第一件事,就是先升到2.x,比較大的改動就是loader的配置方式

// 1.x
preLoaders: [
 {
 test: /\.vue$/,
 loader: 'eslint',
 exclude: /node_modules/
 }, {
 test: /\.js$/,
 loader: 'eslint',
 exclude: /node_modules/
 }
],
loaders: [
 { test: /\.vue$/, loader: 'vue' },
 { test: /\.json$/, loader: 'json' },
 { test: /\.html$/, loader: 'html' },
...
]
//2.x
module: {
 rules: [
 {
 test: /.vue$/,
 use: 'eslint-loader',
 enforce: 'pre', // 對應1.x的preLoaders
 exclude: /node_modules/
 }, {
 test: /.js$/,
 use: 'eslint-loader',
 enforce: 'pre',
 exclude: /node_modules/
 },
 { test: /\.vue$/, use: 'vue-loader' },
 { test: /\.json$/, use: 'json-loader' },
 { test: /\.html$/, use: 'html-loader' },
 ...
 ]
},

而且loader一定要寫完整,vue-loader如果只寫vue會報錯。loader還可以通過options進行配置。

{
 loader: 'css-loader',
 options: {
 autoprefixer: false
 }
}

舊版的鏈式調用也用數組替代。

1.x

style!postcss!less

2.x

 use: [
 "style-loader",
 "css-loader",
 "less-loader"
 ]

webpack2.x默認支持es6的模塊,所以在編譯時候沒有必要將它們先轉換CommonJS模塊再處理,babel-preset-es2015-webpack已經支持不轉換模塊中的importexport,只需要設置.babelrc

"presets": [
 ["es2015", { "modules": false }]
]

另外就是插件的升級,運行時哪個插件報錯就升級哪個插件,屢試不爽。

2.x到4.x

第一步:版本升級

  1. 不再支持node 4,可以直接升級到8.x版本
  2. webpack升級
npm install webpack@4 --save

npm install webpack-cli --save // 不要忘記這一點,用來啟動webpack的

插件升級,同理,哪個報錯就升級哪個,除了html-webpack-plugin用下面的方法升級,原因是作者還未來得及升級

npm i webpack-contrib/html-webpack-plugin --save-dev

extract-text-webpack-plugin只有最新的beta版本才支持,所以npm install extract-text-webpack-plugin@next --save-dev

第二步 運行命令中添加 --mode development--mode production

PS:雖然說webpack 4是零配置,入口默認是src/index.js,出口是dist/,但由于項目是多頁面的,所以這一步并沒有省略,根據實際情況來。

第三步 移除CommonsChunkPlugin

//替代方案
module: {
 rules: [
 ...
 ]
},
optimization: {
 splitChunks: {
 chunks: "all", // 必須三選一:'initial' | 'all' | 'async'
 minSize: 0, 
 minChunks: 1,
 maxAsyncRequests: 1,
 maxInitialRequests: 1,
 name: () => {},
 cacheGroups: {
 vendor: {
 chunks: 'all',
 test: /node_modules/, // 正則規則驗證,如果符合就提取chunks
 name: "vendor" // 要緩存的分割出來的chunk名稱
 },
 default: {
 chunks: 'all',
 name: 'commons',
 reuseExistingChunks: true
 }
 }
 }
}

因為多個頁面,所以結合了html-webpack-plugin

new HtmlWebpackPlugin({
 template: 'index.html',
 chunks: ['vendor', 'commons', 'index']
 })

剛開始一直出錯,是因為我沒有復寫default,也沒有default:false,所以其實默認配置有將所有的模塊的公共部分分離到某個文件中,但我在HtmlWebpackPlugin中的chunks中又沒有添加,所以要么覆寫原來的默認配置,要么就關閉默認配置。

第四步:配置postcss autoprefixer

在根目錄下創建一個文件`postcss.config.js`

module.exports = {
 plugins: [
 require('postcss-inline-svg')({
 removeFill: false
 }),
 require('postcss-pxtorem')({
 replace: process.env.NODE_ENV === 'production',
 rootValue: 750 / 16,
 minPixelValue: 1.1,
 propWhiteList: [],
 unitPrecision: 5
 }),
 require('autoprefixer')({browsers: ['iOS>7', 'Android>4']})
 ]
};

...
 {
 test: /\.(css|less)$/,
 use: ExtractTextPlugin.extract({
 fallback: 'style-loader',
 use:[{
 loader: 'css-loader',
 options: {
 autoprefixer: false
 }
 },
 {
 loader: 'postcss-loader',
 options: {
 sourceMap: true
 }
 },
 {
 loader: 'less-loader',
 options: {
 relativeUrls: true
 }
 }]
 })
 },
...

第五步:不需要UglifyJsPlugin插件

只需要設置optimization.minimize: true就行,production mode下面自動為true

以上只是在原有項目的基礎上對webpack 4的升級,還有一些特性并沒有用到,所以沒有提及,比如sideEffectsjavascript/auto javascript/esm javascript/dynamicwebassembly/experimental等等,有機會再去探索。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

webpack4的遷移的使用方法

webpack4的遷移的使用方法:感覺是突然之間,webpack4的消息就滿天飛了,聽說打包速度提高了很多,還有最大的噱頭是實現了零配置,leader有一天就吩咐我說,有時間把我們的項目也升個級唄。好嘞。 1.x到2.x 這次升級跨度比較大,我們是從webpack1.x升級到4.x,因為1.x與2.x相差
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产成人精视频在线观看免费 | 午夜看一级特黄a大片黑 | 亚洲欧美色欧另类欧 | 国产在线视频一区二区三区 | 六十路垂乳熟年交尾正在播放 | 韩国精品一区二区久久 | 在线观看免费精品国自产 | 欧美另类第一页 | 久热中文字幕在线精品首页 | 国产在线观看第一页 | 91香蕉国产亚洲一区二区三区 | 精品国产亚洲一区二区三区 | 在线免费观看一区二区三区 | 曰韩欧美 | 国产精品综合色区在线观看 | 国产欧美日韩综合精品一区二区 | 亚洲欧洲精品成人久久曰 | 国产国语在线播放视频 | 国内精品视频免费观看 | 伊人情人综合成人久久网小说 | 国产第一页在线视频 | 欧美视频日韩视频 | 久久综合中文字幕一区二区 | 尤物视频黄 | 成人在线视频一区 | 欧美日a| 欧美亚洲国产日韩一区二区三区 | 亚洲欧美一区二区三区九九九 | 欧美十区 | 亚洲欧美激情另类 | 一级黄免费 | 国产六区| 亚洲国产精品综合久久一线 | 国产成人欧美一区二区三区vr | 欧美在线观看成人高清视频 | 国产高清免费 | 韩国精品一区二区久久 | 亚洲精品电影 | 视频在线观看国产 | 最新精品在线视频 | 日韩色视频 |