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 匿名函数的理解(透彻版)
Jan 28 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
Aug 06 Javascript
window.location.reload 刷新使用分析(去对话框)
Nov 11 Javascript
JS创建事件的三种方法(实例代码)
May 12 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
May 20 Javascript
JS实现隔行换色的表格排序
Mar 27 Javascript
Vue Spa切换页面时更改标题的实例代码
Jul 15 Javascript
实现单层json按照key字母顺序排序的示例
Dec 06 Javascript
vue检测对象和数组的变化分析
Jun 30 Javascript
浅谈express.js框架中间件(middleware)
Apr 07 Javascript
JS数组方法reverse()用法实例分析
Jan 18 Javascript
在vue-cli3中使用axios获取本地json操作
Jul 30 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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
php将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
PHP在字符断点处截断文字的实现代码
2011/04/21 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
php判断邮箱地址是否存在的方法
2016/02/13 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
Cookie 注入是怎样产生的
2009/04/08 Javascript
js输出列表实现代码
2010/09/12 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
在Angular项目使用socket.io实现通信的方法
2021/01/05 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
Python3实现的简单验证码识别功能示例
2018/05/02 Python
python数据挖掘需要学的内容
2019/06/23 Python
打包python 加icon 去掉cmd黑窗口方法
2019/06/24 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
大专自我鉴定范文
2013/10/01 职场文书
函授药学自我鉴定
2014/02/07 职场文书
2015年百日安全活动总结
2015/03/26 职场文书
裁员通知
2015/04/25 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
关于Vue中的options选项
2022/03/22 Vue.js