亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue項目從webpack3.x升級webpack4不完全指南

 更新時間:2019年04月28日 14:59:34   作者:Vicco W.  
前段時間,泡面將自己的一個Vue-cli構(gòu)建的前端框架從webpack3.x升級到了4.x版本,現(xiàn)在才拉出來記錄一下,已備忘之用,也和大家分享一下,需要的朋友可以參考下

前段時間,泡面將自己的一個Vue-cli構(gòu)建的前端框架從webpack3.x升級到了4.x版本,現(xiàn)在才拉出來記錄一下,已備忘之用,也和大家分享一下,以免大家采坑。

原先的環(huán)境

  • 項目原先通過Vue-cli 2.9.3 版本構(gòu)建,原先使用的webpack 3.x版本
  • 首先需要對基礎(chǔ)包進行更新(package.json)
  • webpack 更新到4.x版本,泡面這里更新到了4.28.3
  • 更新webpack-dev-server,泡面更新到了3.1.14版本,
  • 安裝webpack-cli,泡面安裝的是3.2.1版本

除了上面的這幾個,還需要更新下面幾個:

  • vue-loader 泡面直接升級到了15版本,
  • eslint-loader 升級到了1.7.1,這個當(dāng)時在做啟動的時候提示了一些錯誤,所以索性也就升級了.
  • happypack, 泡面使用了多線程加速,所以這個也必須要升級,否則會報錯,泡面更新到了5.0.1
  • html-webpack-plugin, 這個也需要更新,否則會提示錯誤,泡面這里升級到了3.2.0

除了上面幾個,還需要額外下載一個:

  • mini-css-extract-plugin, 該包是要替換掉extract-text-webpack-plugin來使用,所以后者就遺棄掉了.

接著我們修改一下webpack.base.conf.js,沒有使用happypack的這步驟可略過...

泡面這里不知道為什么不能使用happypack來掛載vue-loader,否則會提示錯誤,所以泡面這里將原先的happypack的配置修改回了原先:

...
const vueLoaderConfig = require('./vue-loader.conf')
...
module.exports = {
 ...
  {
   test: /\.vue$/,
    // loader: 'happypack/loader?id=happy-vue'
    loader: 'vue-loader',
    options: vueLoaderConfig
  },
 ... 
}

接著來調(diào)整 webpack.dev.conf.js

首先在合并配置的地方引入mode

 ...
 // 開發(fā)環(huán)境引入
 mode: 'development',
 ...
 module: {
  ...
 }
 devServer: {
  ...
 }

webpack4需要手動引入vue-loader插件,因為泡面是從14版本升級到15版本,點我查看官方文檔,如何從 v14 遷移,所以這里需要引入:

...
const VueLoaderPlugin = require('vue-loader/lib/plugin')
...
module.export = {
 ...
 plugins: [
  ...
  // 引入vue-loader插件
  new VueLoaderPlugin(),
  ...
  // 同時,泡面注釋掉了vue-loader的happypack
  // new Happypack({
  //  id: 'happy-vue',
  //  loaders: [{
  //   loader: 'vue-loader',
  //   options: vueLoaderConfig
  //  }]
  // })
 ]
}

接著, 以下插件被廢棄掉了,直接注釋掉

  • webpack.DefinePlugin
  • webpack.NamedModulesPlugin
  • webpack.NoEmitOnErrorsPlugin

ok, 這個文件就改完了.

接著來修改webpack.prod.conf.js

同開發(fā)環(huán)境,需要引入mode和vue-loader,一模一樣,所以這里不贅述了.

接著,我們需要在配置表里添加optimization選項:

...
output: { ...},
// 這里添加
optimization: {
  runtimeChunk: {
   name: 'manifest'
  },
  minimizer: [
   new UglifyJsPlugin({
    cache: true,
    parallel: true,
    sourceMap: config.build.productionSourceMap,
    uglifyOptions: {
     warnings: false
    }
   }),
   new OptimizeCSSPlugin({
   cssProcessorOptions: config.build.productionSourceMap
    ? { safe: true, map: { inline: false } }
    : { safe: true }
  }),
  ],
  splitChunks:{
   chunks: 'async',
   minSize: 30000,
   minChunks: 1,
   maxAsyncRequests: 5,
   maxInitialRequests: 3,
   name: false,
   cacheGroups: {
    vendor: {
     name: 'vendor',
     chunks: 'initial',
     priority: -10,
     reuseExistingChunk: false,
     test: /node_modules\/(.*)\.js/
    },
    styles: {
     name: 'styles',
     test: /\.(scss|css)$/,
     chunks: 'all',
     minChunks: 1,
     reuseExistingChunk: true,
     enforce: true
    }
   }
  }
 },
 plugins: [...] 

接著,我們需要引入mini-css-extract-plugin插件,并添加到插件里:

...
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
...
plugins: [
 ...
 new MiniCssExtractPlugin({
  filename: utils.assetsPath('css/[name].[contenthash].css')
 }),
 ... 
]

然后, 我們需要把廢棄掉的插件注釋掉:

webpack.DefinePlugin
UglifyJsPlugin (放到optimization里了)
ExtractTextPlugin
OptimizeCSSPlugin (放到optimization里了)
CommonsChunkPlugin (所有的...)

ok, 至此該文件就調(diào)整完了.

最后一個utils.js

這里主要是需要添加mini-css-extract-plugin插件

...
// 注釋掉原來的插件
// const ExtractTextPlugin = require("extract-text-webpack-plugin");
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
...
// 找到:
// return ExtractTextPlugin.extract({
//  use: loaders,
//  fallback: "vue-style-loader",
//  publicPath: '../../'
// });
// 改為:
return [MiniCssExtractPlugin.loader].concat(loaders)

ok, 大功告成! 至此webpack4的配置文件就全部修改完成了.

目前, 泡面至在此記錄流水賬,回頭性能測試再發(fā)文章記錄.

ps: 如果出現(xiàn)這種錯誤

error: [vue-loader] vue-template-compiler must be installed as a peer dependency, or a compatible compiler implementation must be passed via options.

請重新安裝一下 vue-template-compiler

總結(jié)

以上所述是小編給大家介紹的Vue項目從webpack3.x升級webpack4不完全指南,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的

相關(guān)文章

  • Vue利用廣度優(yōu)先搜索實現(xiàn)watch

    Vue利用廣度優(yōu)先搜索實現(xiàn)watch

    這篇文章主要為大家學(xué)習(xí)介紹了Vue如何利用廣度優(yōu)先搜索實現(xiàn)watch(有意思),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-08-08
  • vue如何添加jest測試

    vue如何添加jest測試

    這篇文章主要介紹了vue如何添加jest測試問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 原生JS實現(xiàn)Vue transition fade過渡動畫效果示例

    原生JS實現(xiàn)Vue transition fade過渡動畫效果示例

    這篇文章主要為大家介紹了原生JS實現(xiàn)Vue transition fade過渡動畫效果示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • VUE DEMO之模擬登錄個人中心頁面之間數(shù)據(jù)傳值實例

    VUE DEMO之模擬登錄個人中心頁面之間數(shù)據(jù)傳值實例

    今天小編就為大家分享一篇VUE DEMO之模擬登錄個人中心頁面之間數(shù)據(jù)傳值實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • webpack+vue+express(hot)熱啟動調(diào)試簡單配置方法

    webpack+vue+express(hot)熱啟動調(diào)試簡單配置方法

    今天小編就為大家分享一篇webpack+vue + express (hot) 熱啟動調(diào)試簡單配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue運行卡死的問題

    vue運行卡死的問題

    這篇文章主要介紹了vue運行卡死的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue通過v-show實現(xiàn)回到頂部top效果

    vue通過v-show實現(xiàn)回到頂部top效果

    這篇文章主要介紹了vue通過v-show實現(xiàn)回到頂部top效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • Vue axios全局?jǐn)r截 get請求、post請求、配置請求的實例代碼

    Vue axios全局?jǐn)r截 get請求、post請求、配置請求的實例代碼

    這篇文章主要介紹了Vue axios全局?jǐn)r截 get請求、post請求、配置請求的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • vue頁面跳轉(zhuǎn)后返回原頁面初始位置方法

    vue頁面跳轉(zhuǎn)后返回原頁面初始位置方法

    下面小編就為大家分享一篇vue頁面跳轉(zhuǎn)后返回原頁面初始位置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 在vue3中使用import.meta.env

    在vue3中使用import.meta.env

    這篇文章主要介紹了在vue3中使用import.meta.env方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評論