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中的onchange和onpropertychange (onchange无效的解决方法)
Mar 08 Javascript
JS应用正则表达式转换大小写示例
Sep 18 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
Apr 21 Javascript
Javascript实现单例模式
Jan 24 Javascript
Node.js Sequelize如何实现数据库的读写分离
Oct 23 Javascript
Javascript使用function创建类的两种方法(推荐)
Nov 19 Javascript
angular-ui-sortable实现可拖拽排序列表
Dec 28 Javascript
layui文件上传实现代码
May 20 Javascript
vue弹窗组件使用方法
Apr 28 Javascript
layui的表单提交以及验证和修改弹框的实例
Sep 09 Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
Nov 12 Javascript
Vue实现简易计算器
Feb 25 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 $_SERVER["REQUEST_URI"]获取值的通用解决方法
2010/06/21 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
JQuery 写的个性导航菜单
2009/12/24 Javascript
Js 中debug方式
2010/02/07 Javascript
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
python登录豆瓣并发帖的方法
2015/07/08 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
python连接mysql有哪些方法
2020/06/24 Python
Python 创建TCP服务器的方法
2020/07/28 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
python 基于UDP协议套接字通信的实现
2021/01/22 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
.NET程序员的数据库面试题
2012/10/10 面试题
人力资源专员岗位职责
2014/01/30 职场文书
大学毕业感言50字
2014/02/07 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
大学毕业生自我评价
2015/03/02 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
MySQL pt-slave-restart工具的使用简介
2021/04/07 MySQL
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android