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 相关文章推荐
学习ExtJS Panel常用方法
Oct 07 Javascript
js实现拖拽 闭包函数详细介绍
Nov 25 Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 Javascript
jQuery的基本概念与高级编程
May 14 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
May 15 Javascript
原生js实现验证码功能
Mar 16 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
Jun 23 Javascript
angular4 如何在全局设置路由跳转动画的方法
Aug 30 Javascript
浅谈Vuex的状态管理(全家桶)
Nov 04 Javascript
LayerClose弹窗关闭刷新方法
Aug 17 Javascript
浅谈关于iview表单验证的问题
Sep 29 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
Apr 04 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 新手入门教程
2009/08/03 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
php求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
javascript加号"+"的二义性说明
2013/03/04 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
Bootstrap表单布局
2016/07/19 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
js实现五星评价功能
2017/03/08 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
vue实现登陆登出的实现示例
2017/09/15 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
详解Python3 基本数据类型
2019/04/19 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
python Matplotlib模块的使用
2020/09/16 Python
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
行政总经理岗位职责
2013/12/05 职场文书
服务承诺口号
2014/05/22 职场文书
采购部2015年度工作总结
2015/07/24 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
在CSS中使用when/else的方法
2022/01/18 HTML / CSS
python 安全地删除列表元素的方法
2022/03/16 Python
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技