解决webpack打包速度慢的解决办法

技巧1

webpack在打包的时候第一次总是会做很长的准备工作,包括加载插件之类的。在刚接触webpack的时候总是webpack一下-测一下-改一下-再webpack一下,这种方式最后让很多人崩溃了觉得webpack一点都不好用。其实这是错误的使用方式。

正确的方式应直接执行webpack --watch 这样webpack会自动编译,第一回的时候确实很慢,但之后的自动编译就要快了好多,打包时间相差几倍。

技巧2

webpack配合的React,jQuery一些共有的库去使用,虽然没写几行代码却发现我靠打个文件居然好几M了。能不能不让这些共有库打入我们的文件呢?

?


1

2

3

4

5

6

externals:

    {

      ‘antd‘:true,

      ‘react‘: ‘React‘,

      ‘react-dom‘: ‘ReactDOM‘

    }

在webpack配置文件的根上加上这些内容。告诉webpack在require(“react”)的时候不要去加载模块,直接去读(这里还不是很明白,有的说“:”后面是window.React,写了后面可以直接使用无需require,待确定后再补充,一般写true就可以了),当然这种方式要在html入口手动引入js文件:

?


1

2

3

<script src="node_modules/react/dist/react-with-addons.js"></script>

<script src="node_modules/react-dom/dist/react-dom.min.js"></script>

<script src="node_modules/antd/dist/antd.min.js"></script>

在项目中正常使用require(“react”)试试,不会被打进去了,文件变为了几k,突然感觉webpack这东西还是能用的。

技巧3

大部分情况下通过技巧2已经可以搞定大部分问题了,但是在用MaterialUI的时候,点击事件总是报一个错误,大概意思是重复的引入了react什么的。如果出现这个问题,那么请使用技巧3。将那些共有的模块打进另外一个文件中,然后使用CommonsChunkPlugin插件,在webpack –watch非第一编打包的时候就不会重复的打另外一个文件了。

entry: {

    //这是我自己文件的入口,换成自己的

    main: ‘./apps/main.jsx‘,

    //这个是把外面的东西打包成common.js

    ‘common‘:[‘./node_modules/react/dist/react-with-addons.min.js‘,‘./node_modules/react-dom/dist/react-dom.min.js‘]

  },

plugins: [

    //把common.js变为共有的,除第一遍打包后就不会再打包了

    new webpack.optimize.CommonsChunkPlugin(‘common‘, ‘common.js‘)

  ]

output: {

    path: path.resolve(containerPath,‘dist/‘),

    filename: ‘[name].js‘

  }

在webpack配置文件的根上加上这些内容,在html入口处需要引入common.js

?


1

2

//确认一下是不是第一回打包后这个文件已经有了

<script src="dist/common.js"></script>

这种方式在webpack -watch后第一遍依旧很慢(因为要打common) 之后修改默认打包是就不会再打common了。而且还有一个优点就是不用再引React,jquery一堆文件了,只引common一个文件就ok。

参考:https://www.jb51.net/article/118048.htm

原文地址:https://www.cnblogs.com/caozhuzi/p/10952185.html

时间: 2024-11-12 17:28:22

解决webpack打包速度慢的解决办法的相关文章

彻底解决Webpack打包慢的问题

转载 这几天写腾讯实习生 Mini 项目的时候用上了 React 全家桶,当然同时引入了 Webpack 作为打包工具.但是开发过程中遇到一个很棘手的问题就是,React 加上 React-Router.superagent.eventproxy 这些第三方轮子一共有好几百个 module,Webpack 的打包速度极慢.这对于开发是非常不好的体验,同时效率也极低. 问题分析 我们先来看一下完全没有任何优化的时候,Webpack 的打包速度(使用了jsx和babel的loader).下面是我们的

解决 webpack 打包文件体积过大

webpack 把我们所有的文件都打包成一个 JS 文件,这样即使你是小项目,打包后的文件也会非常大.下面就来讲下如何从多个方面进行优化. 去除不必要的插件 刚开始用 webpack 的时候,开发环境和生产环境用的是同一个 webpack 配置文件,导致生产环境打包的 JS 文件包含了一大堆没必要的插件,比如 HotModuleReplacementPlugin, NoErrorsPlugin... 这时候不管用什么优化方式,都没多大效果.所以,如果你打包后的文件非常大的话,先检查下是不是包含了

解决webpack打包bootstrap报字体不能解析问题

url-loader没有配置对, 你需要把那些字体的后缀也加到url-loader的配置里面. 检查一下你webpack里面对url-loader的配置.下面我正在用的配置. module: { noParse: [], loaders: [ { test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/, loader: 'url-loader?limit=50000&name=[path][name].[ext]'} ] },注意:大余50KB的文件不会被打

解决webpack打包vue项目后,部署完成后,刷新页面页面404

1.url不动式url完全不动,即你的页面怎么改变,怎么跳转url都不会改变.这种情况的原理 就是纯ajax拿到页面后替换原页面中的元素,刷新页面就是首页 2.带hash(#)式这种相对于第一种的话刷新页面页面不会丢失    实现原理写一个window事件我监听url的变化,那我就能实先路由,那样我就可以根据url的变化,来通过ajax请求参数来渲染页面,一个url对应一个页面,就不会重复.window.addEventListener(‘hashchange‘,function(){self.

Webpack 打包太慢? 试试 Dllplugin

webpack在build包的时候,有时候会遇到打包时间很长的问题,这里提供了一个解决方案,让打包如丝般顺滑~ 1. 介绍 在用 Webpack 打包的时候,对于一些不经常更新的第三方库,比如 react,lodash,vue 我们希望能和自己的代码分离开,Webpack 社区有两种方案 CommonsChunkPlugin DLLPlugin 对于 CommonsChunkPlugin,webpack 每次打包实际还是需要去处理这些第三方库,只是打包完之后,能把第三方库和我们自己的代码分开.而

当node升级后导致webpack打包出错,node-saas出问题的解决办法

报错信息如下: ERROR in ./node_modules/[email protected]@extract-text-webpack-plugin/dist/loader.js?{"omit":1,"remove":true}!D:/work/nl_web/node_modules/[email protected]@vue-style-loader!D:/work/nl_web/node_modules/[email protected]@css-load

解决webpack因新版本打包失败问题--ERROR in multi ./src/main.js ./dist/bundle.js

最近在学习webpack打包过程中遇到的一个问题向大家分享下! 创建了一个webpacksty的目录,目录下放着dist,src子目录,然后通过node环境下,npm init -y 初始化项目出现package.json文件,src子目录下又存放着index.html和main.js文件,接下来尝试着在main.js输入一句代码当验证打包后续是否成功的过程: console.log("ok"); 接下就是执行webpack打包命令了 把src下的main.js打包到dist下的bun

VS2008开发WinCE程序编译速度慢的解决办法

VS2008开发WinCE程序编译速度慢的解决办法 VS2008环境下采用C#..NET Compact Framework开发WinCE.Windows Mobile程序时,编译项目非常慢,有时候需要几分钟甚至十几分钟,如果出现这种情况,除了排除机器配置问题外,你可以修改VS的配置文件,以屏蔽掉编译中不需要的任务,这个修改可以让你的编译速度大大提高,有可能你的编译时间只需要几秒钟就搞定了啊. 1.找到以下文件 C:\Windows\Microsoft.NET\Framework\v3.5\Mi

mysql导入导出sql文件,source导入速度慢的解决办法

1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u dbuser -p dbname > dbname.sql 2.导出一个表mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名mysqldump -u dbuser -p dbname users> dbname_users.sql 3.导出一个数据库结构mysqldump -u dbuser -p -d --add-drop-table dbname &