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几个验证函数代码
Mar 25 Javascript
JS操作图片(增,删,改) 例子
Apr 17 Javascript
javascript浏览器兼容教程之事件处理
Jun 09 Javascript
javascript基于DOM实现权限选择实例分析
May 14 Javascript
JavaScript函数节流概念与用法实例详解
Jun 20 Javascript
react.js 获取真实的DOM节点实例(必看)
Apr 17 Javascript
javascript按钮禁用和启用的效果实例代码
Oct 29 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 jQuery
如何在微信小程序里面退出小程序的方法
Apr 28 Javascript
详解微信小程序支付流程与梳理
Jul 16 Javascript
微信小程序实现左侧滑动导航栏
Apr 08 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学习笔记之数组篇
2011/06/28 PHP
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
php可变长参数处理函数详解
2017/02/22 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
几种经典排序算法的JS实现方法
2016/03/25 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
简单实现JavaScript弹幕效果
2020/08/27 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python通过yield实现数组全排列的方法
2015/03/18 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
Python Numpy:找到list中的np.nan值方法
2018/10/30 Python
Python语言快速上手学习方法
2018/12/14 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
美国NBA官方商店:NBA Store
2019/04/12 全球购物
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
十佳护士获奖感言
2014/02/18 职场文书
工作岗位说明书模板
2014/05/09 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
社区党员干部承诺书
2015/05/04 职场文书
活动经费申请报告
2015/05/15 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL