webpack 1.x升级过程中的踩坑总结大全


Posted in Javascript onAugust 09, 2017

前言

大家应该都知道,Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。因为最近在对博客做SSR,无奈vue ssr demo或例子都是基于webpack2的。博主在webpack1.x上折腾了许久,vue-ssr-server-bundle.json文件生成仍然还是遥遥无期。最后还是乖乖地开始了webpack升级之旅。

本文主要记录升级过程中遇到的一些坑和解决办法,可能有些遗漏了,能记多少记多少吧。话不多说了,来一起看看详细的介绍吧。

webpack 1.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的配置做了一些调整,修改 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']
  })
  ]
 }
},

小结

升级过程总体上还算顺利,vue-ssr-server-bundle.json也生成了,不过这仅仅是ssr的开始,一大堆问题等着解决。 如果不熟悉webpack2可以先花点时间看下官网介绍,英文不好的可以看翻译版。 整个升级过程总得来说,就是很多loader得升级,另一个要注意的就是loader的配置了,其它似乎没什么特别的地方。

总结

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
Javascript 两个窗体之间传值实现代码
Sep 25 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
May 22 Javascript
node.js中使用socket.io制作命名空间
Dec 15 Javascript
js实现兼容IE和FF的上下层的移动
May 04 Javascript
JavaScript学习笔记之DOM基础 2.4
Aug 14 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
Jan 04 Javascript
JS库中的Particles.js在vue上的运用案例分析
Sep 13 Javascript
jQuery实现动态控制页面元素的方法分析
Dec 20 jQuery
vue.js动画中的js钩子函数的实现
Jul 06 Javascript
vue中的watch监听数据变化及watch中各属性的详解
Sep 11 Javascript
vue 地区选择器v-distpicker的常用功能
Jul 23 Javascript
借助云开发实现小程序短信验证码的发送
Jan 06 Javascript
微信小程序开发教程之增加mixin扩展
Aug 09 #Javascript
javascript编程开发中取色器及封装$函数用法示例
Aug 09 #Javascript
vuejs父子组件之间数据交互详解
Aug 09 #Javascript
Angular在模板驱动表单中自定义校验器的方法
Aug 09 #Javascript
浅谈react+es6+webpack的基础配置
Aug 09 #Javascript
js中less常用的方法小结
Aug 09 #Javascript
利用JS做网页特效_大图轮播(实例讲解)
Aug 09 #Javascript
You might like
实例讲解如何在PHP的Yii框架中进行错误和异常处理
2016/03/17 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
yepnope.js 异步加载资源文件
2011/09/08 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
浅谈Python批处理文件夹中的txt文件
2019/03/11 Python
elasticsearch python 查询的两种方法
2019/08/04 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
美国皮靴公司自1863年:The Frye Company
2016/11/30 全球购物
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
留学推荐信写作指南
2014/01/25 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
教师求职信范文
2014/05/24 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
学习十八大的心得体会
2014/09/12 职场文书
教师师德考核自我评价
2014/09/13 职场文书
2014年行政部工作总结
2014/11/19 职场文书
聊聊Python String型列表求最值的问题
2022/01/18 Python