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 相关文章推荐
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
Mar 06 Javascript
收藏Javascript中常用的55个经典技巧
Aug 12 Javascript
一个tab标签切换效果代码
Mar 27 Javascript
JQuery对checkbox操作 (循环获取)
May 20 Javascript
JavaScript学习笔记记录我的旅程
May 23 Javascript
jquery下div 的resize事件示例代码
Mar 09 Javascript
JavaScript生成随机字符串的方法
Mar 19 Javascript
使用jQuery实现更改默认alert框体
Apr 13 Javascript
js获取数组的最后一个元素
Apr 14 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
May 25 Javascript
React Native 搭建开发环境的方法步骤
Oct 30 Javascript
ES6实现图片切换特效代码
Jan 14 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
php下过滤HTML代码的函数
2007/12/10 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
2012/10/24 PHP
php 定义404页面的实现代码
2012/11/19 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
2014/01/14 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
javascript prototype原型操作笔记
2009/12/07 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
vue-prop父组件向子组件进行传值的方法
2018/03/01 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
python实现名片管理系统项目
2019/04/26 Python
django实现用户注册实例讲解
2019/10/30 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
css3 position fixed固定居中问题解决方案
2014/08/19 HTML / CSS
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
西式婚礼证婚词
2014/01/12 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
党员个人对照检查材料
2014/10/01 职场文书
交通事故协议书范文
2014/10/23 职场文书
小浪底导游词
2015/02/12 职场文书
母亲节主题班会
2015/08/14 职场文书