前言
10年積累的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有土默特左旗免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
大家應(yīng)該都知道,Webpack 是一個(gè)前端資源加載/打包工具。它將根據(jù)模塊的依賴關(guān)系進(jìn)行靜態(tài)分析,然后將這些模塊按照指定的規(guī)則生成對(duì)應(yīng)的靜態(tài)資源。因?yàn)樽罱趯?duì)博客做SSR,無(wú)奈vue ssr demo或例子都是基于webpack2的。博主在webpack1.x上折騰了許久,vue-ssr-server-bundle.json文件生成仍然還是遙遙無(wú)期。最后還是乖乖地開(kāi)始了webpack升級(jí)之旅。
本文主要記錄升級(jí)過(guò)程中遇到的一些坑和解決辦法,可能有些遺漏了,能記多少記多少吧。話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。
錯(cuò)誤:Error: Chunk.entry was removed. Use hasRuntime()
解決辦法:升級(jí)extract-text-webpack-plugin ("extract-text-webpack-plugin": "^2.1.0",)
錯(cuò)誤:Error: Breaking change: extract now only takes a single argument.
// 錯(cuò)誤提示 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對(duì)loader的配置做了一些調(diào)整,修改 ExtractTextPlugin配置即可:
{ test: /\.less$/, use: ExtractTextPlugin.extract({ fallback: 'style-loader', use: ['css-loader', 'less-loader'] }) },
htmlWebpackPlugin生成的html,沒(méi)有引入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不能識(shí)別es6語(yǔ)法
✘ 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",
錯(cuò)誤: Module build failed: BrowserslistError: Unknown version 57 of and_chr
npm 包過(guò)期,刪除node_modules,從新安裝依賴即可
webpack dist打包后,不生成公共css文件
vee-loader配置不對(duì),加上配置 extractCSS: true
{ test: /\.vue$/, loader: 'vue-loader', options: { extractCSS: isProd, preserveWhitespace: false, postcss: [ require('autoprefixer')({ browsers: ['last 3 versions'] }) ] } },
小結(jié)
升級(jí)過(guò)程總體上還算順利,vue-ssr-server-bundle.json也生成了,不過(guò)這僅僅是ssr的開(kāi)始,一大堆問(wèn)題等著解決。 如果不熟悉webpack2可以先花點(diǎn)時(shí)間看下官網(wǎng)介紹,英文不好的可以看翻譯版。 整個(gè)升級(jí)過(guò)程總得來(lái)說(shuō),就是很多l(xiāng)oader得升級(jí),另一個(gè)要注意的就是loader的配置了,其它似乎沒(méi)什么特別的地方。
總結(jié)
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。