webpack 1.x升級過程中的踩坑總結(jié)大全
前言
大家應(yīng)該都知道,Webpack 是一個前端資源加載/打包工具。它將根據(jù)模塊的依賴關(guān)系進(jìn)行靜態(tài)分析,然后將這些模塊按照指定的規(guī)則生成對應(yīng)的靜態(tài)資源。因為最近在對博客做SSR,無奈vue ssr demo或例子都是基于webpack2的。博主在webpack1.x上折騰了許久,vue-ssr-server-bundle.json文件生成仍然還是遙遙無期。最后還是乖乖地開始了webpack升級之旅。
本文主要記錄升級過程中遇到的一些坑和解決辦法,可能有些遺漏了,能記多少記多少吧。話不多說了,來一起看看詳細(xì)的介紹吧。

錯誤:Error: Chunk.entry was removed. Use hasRuntime()
解決辦法:升級extract-text-webpack-plugin ("extract-text-webpack-plugin": "^2.1.0",)
錯誤:Error: Breaking change: extract now only takes a single argument.
// 錯誤提示
Error: Breaking change: extract now only takes a single argument. Either an options object *or* the loader(s).
Example: if your old code looked like this:
ExtractTextPlugin.extract('style-loader', 'css-loader')
You would change it to:
ExtractTextPlugin.extract({ fallback: 'style-loader', use: 'css-loader' })
原因是webpack2對loader的配置做了一些調(diào)整,修改 ExtractTextPlugin配置即可:
{
test: /\.less$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: ['css-loader', 'less-loader']
})
},
htmlWebpackPlugin生成的html,沒有引入css, app.js
修改配置,chunks屬性使用files包裹
{
filename: pageName + '.html',
template: __dirname + '/src/' + pageName + '.html',
chunks: pageConf.chunks,
inject: true
};
{
filename: pageName + '.html',
template: __dirname + '/src/' + pageName + '.html',
files: {
chunks: pageConf.chunks,
},
inject: true
};
eslint不能識別es6語法
✘ http://eslint.org/docs/rules/ Parsing error: The keyword 'import' is reserved
src\entry.client.js:7:1
import { createApp } from './app'
^
解決辦法:修改eslint配置,增加
"parser": "babel-eslint",
錯誤: Module build failed: BrowserslistError: Unknown version 57 of and_chr
npm 包過期,刪除node_modules,從新安裝依賴即可
webpack dist打包后,不生成公共css文件
vee-loader配置不對,加上配置 extractCSS: true
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
extractCSS: isProd,
preserveWhitespace: false,
postcss: [
require('autoprefixer')({
browsers: ['last 3 versions']
})
]
}
},
小結(jié)
升級過程總體上還算順利,vue-ssr-server-bundle.json也生成了,不過這僅僅是ssr的開始,一大堆問題等著解決。 如果不熟悉webpack2可以先花點時間看下官網(wǎng)介紹,英文不好的可以看翻譯版。 整個升級過程總得來說,就是很多l(xiāng)oader得升級,另一個要注意的就是loader的配置了,其它似乎沒什么特別的地方。
總結(jié)
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
記錄幾個javascript有關(guān)的小細(xì)節(jié)
記錄幾個javascript有關(guān)的小細(xì)節(jié)...2007-04-04
html5 canvas js(數(shù)字時鐘)實例代碼
這篇文章主要介紹了html5 canvas js(數(shù)字時鐘)實例代碼,有需要的朋友可以參考一下2013-12-12
在layer彈層layer.prompt中,修改placeholder的實現(xiàn)方法
今天小編大家分享一篇在layer彈層layer.prompt中,修改placeholder的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
JavaScript 定時器 SetTimeout之定時刷新窗口和關(guān)閉窗口(代碼超簡單)
這篇文章主要介紹了JavaScript 定時器 SetTimeout之定時刷新窗口和關(guān)閉窗口(代碼超簡單)的相關(guān)資料,需要的朋友可以參考下2016-02-02
通過實例了解Render Props回調(diào)地獄解決方案
這篇文章主要介紹了通過實例了解Render Props回調(diào)地獄解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11

