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 相关文章推荐
js读取注册表的键值示例
Sep 25 Javascript
js 操作符汇总
Nov 08 Javascript
javascript常用方法汇总
Dec 02 Javascript
JavaScript设计模式之工厂方法模式介绍
Dec 28 Javascript
AngularJS实现使用路由切换视图的方法
Jan 24 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
May 26 Javascript
javascript 取小数点后几位几种方法总结
Aug 02 Javascript
vue cli webpack中使用sass的方法
Feb 24 Javascript
微信小程序实现滑动翻页效果(完整代码)
Dec 06 Javascript
在vue中created、mounted等方法使用小结
Jul 21 Javascript
VUE使用axios调用后台API接口的方法
Aug 03 Javascript
javascript之Object.assign()的痛点分析
Mar 03 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
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
利用php获得flv视频长度的实例代码
2017/10/26 PHP
js简单实现删除记录时的提示效果
2013/12/05 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
python实现的登录和操作开心网脚本分享
2014/07/09 Python
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
python贪吃蛇游戏代码
2020/04/18 Python
Python实现一个优先级队列的方法
2020/07/31 Python
python绘制分布折线图的示例
2020/09/24 Python
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
实习会计求职自荐信范文
2014/03/10 职场文书
伦敦奥运会口号
2014/06/13 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
我的中国梦演讲稿300字
2014/08/19 职场文书
表扬通报怎么写
2015/01/16 职场文书
2016年公司新年寄语
2015/08/17 职场文书
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle
Nebula Graph解决风控业务实践
2022/03/31 MySQL