(21/24) webpack实战技巧:webpack对三方类库的优化操作

1.优化第一步--选用引入方式

在前面的学习中我们对于如何引入第三方类库(Jquery)推荐了两种方式,第一种是import引入的方式,第二种是ProvidePlugin插件。那两种引入方法有什么区别那?

  • import引入方法:引用后不管你在代码中使用不使用该类库,都会把该类库打包起来,这样有时就会让代码产生冗余。(引用即打包)
  • ProvidePlugin引入方法:引用后只有在类库使用时,才按需进行打包,所以建议在工作使用插件的方式进行引入。 (按需打包)

因此在日常开发中选用ProvidePlugin插件的方式进行打包,可在一定程度上减轻代码的冗余。

2.优化第二步--三方类库分离

2.1 单个三方类库分离

2.1.1 第一步:修改入口文件

抽离的第一步是修改入口文件,把我JQuery加入到入口文件中:

config/webpack.entry.js文件:

//声明entry变量
const entry={};
//声明路径属性
entry.path={
    entry:‘./src/entry.js‘,
    jquery:‘jquery‘  //需要分离的文件
};

//进行模块化
module.exports=entry;

2.1.2 第二步:引入插件

引入optimize优化插件,并进行相关配置,如下:

new webpack.optimize.CommonsChunkPlugin({
    //name对应入口文件中的名字,我们起的是jquery
    name:‘jquery‘,
    //把文件打包到哪里,是一个路径
    filename:"assets/js/jquery.min.js",
    //最小打包的文件模块数,这里直接写2就好
    minChunks:2
}),

minChunks一般都是固定配置,但是不写是不行的,你会打包失败。

filename是可以省略的,这是直接打包到了打包根目录下,我们这里直接打包到了dist文件夹下的assets/js/下。

配置完成后,我们先删掉以前打包的dist目录,然后用webpack再次打包,你会发现jquery被抽离了出来,并且我们的entry.js文件变的很小。

2.2 多个第三方类库抽离

在实际开发中,我们会引用不止一个第三方类库,这时也需要抽离,这里我们在引入Vue相关操作如下:

2.2.1 安装Vue

npm instawll vue --save

因为这个类库需要在生产环境中使用,故采用–save。

2.2.2 修改入口文件

//声明entry变量
const entry={};
//声明路径属性
entry.path={
    entry:‘./src/entry.js‘,
    jquery:‘jquery‘ , //需要分离的文件
     vue:‘vue‘
};

//进行模块化
module.exports=entry;

相比第一种只是多加了一个vue选项。

2.2.3 修改插件配置

修改CommonsChunkPlugin配置

需要修改两个位置:

  • 第一个是在name属性里把原来的字符串改为数组,因为我们要引入多个模块,所以是数组;
  • 第二个是在filename属性中把我们输出的文件名改为匹配付[name],这项操作就是打包出来的名字跟随我们打包前的模块。

修改代码如下:

new webpack.optimize.CommonsChunkPlugin({
    //name对应入口文件中的名字,我们起的是jQuery
    name:[‘jquery‘,‘vue‘],
    //把文件打包到哪里,是一个路径
    filename:"assets/js/[name].js",
    //最小打包的文件模块数,这里直接写2就好
    minChunks:2
}),

2.2.4 打包

webpack

配置完成后,我们先删掉以前打包的dist目录,然后用webpack再次打包,你会发现jquery、vue被抽离了出来。

原文地址:https://www.cnblogs.com/wfaceboss/p/10157077.html

时间: 2024-07-31 22:25:17

(21/24) webpack实战技巧:webpack对三方类库的优化操作的相关文章

(22/24) webpack实战技巧:静态资源集中输出

工作中会有一些已经存在但在项目中没有引用的图片资源或者其他静态资源(比如设计图.开发文档),这些静态资源有可能是文档,也有可能是一些额外的图片,而在打包时保留这些静态资源,直接打包到指定文件夹中.此时就需要使用到copy-webpack-plugin这个插件了. copy-webpack-plugin:静态资源转移的插件. 1.copy-webpack-plugin的使用 1.1 静态资源 在src目录下,新建一个存放静态资源的文件夹public(假设里面有大量的静态资源(图片.文件等)) 1.

(23/24) webpack实战技巧:如何在webpack环境中使用Json

在webpack1或者webpack2版本中,若想在webpack环境中加载Json文件,则需要加载一个json-loader的loader进来的.但是在webpack3.x版本中,则不需要在另外引入了,也可使用Json. 下面以webpack3.x为例来说明在webpack中如何使用json.(主要是读取Json内容) 1. webpack中如何使用json 第一步:创建json数据 在根目录下新建一个config.json文件,里面新增如下内容: { "name": "w

webpack实战

webpack实战 30分钟手把手教你学webpack实战 2015-09-08 23:02 by 龙恩0707, 175 阅读, 0 评论, 收藏, 编辑 30分钟手把手教你学webpack实战 阅读目录 一:什么是webpack? 他有什么优点? 二:如何安装和配置 三:理解webpack加载器 四:理解less-loader加载器的使用 五:理解babel-loader加载器的含义 六:了解下webpack的几个命令 七:webpack对多个模块依赖进行打包 八:如何独立打包成样式文件 九

Webpack实战(四):教教你如何轻松搞定-预处理器(loader)

前面三节,我主要给大家分享了有关webpack的一些配置的知识点,如何打包js文件,而如果我们遇到其他类型的资源如图片.css.字体font等等,我们该如何处理呢?今天会介绍预处理器(loader),它赋予了Webpack可处理不同资源类型的能力,极大丰富了其可扩展性. 如果想了解Webpack的基础配置可以参考以下地址: Webpack实战(一):Webpack打包工具安装及参数配置 Webpack实战(二):webpack-dev-server的介绍与用法 Webpack实战(三):作为前端

Webpack实战(五):轻松读懂Webpack如何分离样式文件

在上一篇文章中我给大家分享了预处理器(loader),里面讲到了style-loader 和css-loader,有关样式引入的问题,但是上面的样式文件只是引入到style标签里面,并不是我想要的样式文件独立分离. 如果想了解有关css-loader和style-loader可以参考以下地址: Webpack实战(四):教教你如何轻松搞定-预处理器(loader) 通过js引入样式文件只是把样式添加到style标签内,而不是引入一个独立的css文件,一般来说,在生产环境下,我们希望样式存在于CS

30分钟手把手教你学webpack实战

阅读目录 一:什么是webpack? 他有什么优点? 二:如何安装和配置 三:理解webpack加载器 四:理解less-loader加载器的使用 五:理解babel-loader加载器的含义 六:了解下webpack的几个命令 七:webpack对多个模块依赖进行打包 八:如何独立打包成样式文件 九:如何打包成多个资源文件 十:关于对图片的打包 十一:React开发神器:react-hot-loader 回到顶部 什么是webpack? 他有什么优点? 首先对于很多刚接触webpack人来说,

Webpack实战(一):Webpack打包工具安装及参数配置

为什么要模块化 javascript跟其他开发语言有很多的区别,其中一个就是没有模块化概念,如果一个项目中有多个js文件,我们只能通过script标签引入的方式,把一个个js文件插入到页面,这种做法会也引起了很多弊端: 需要手动维护JavaScript的加载顺序 多次请求资源,影响了加载速度 在每个script标签中,顶层作用域即全局作用域,如果没有任何处理而直接在代码中进行变量或函数声明,就会造成全局作用域的污染,也会造成命名冲突. 模块化很容易就避免这些问题,避免冲突,合并资源减少网络开销,

Android实战技巧之十一:Android Studio和Gradle

经过两个多月的AS体验,我认为是时候将Android的开发环境迁移到AS上了.目前最新版本是1.0.2,除了UI控件拖拽偶尔崩溃的问题(Ubuntu),其他功能用来还是十分流畅和高效.打动我的有如下几个特色: 智能感知体验特好,堪比VS 布局预览,手写布局后预览页面即时显示,便于布局调整和优化 编辑速度飞快流畅,毫无eclipse的卡顿 布局或源码中有图标和颜色的预览,十分直观 调试时体验极佳 集成了Terminal,喜欢命令行操作的伙伴不用额外启动终端了. 总之一句话,就是用起来特别爽! An

玩转webpack 全方位掌握webpack核心技能和优化策略

第一章:wepack与构建发展简史 (9讲)01 | 课程介绍02 | 内容综述03 | 为什么需要构建工具04 | 前端构建演变之路05 | 为什么选择webpack06 | 初识webpack07 | 环境搭建:安装webpack08 | webpack初体验:一个最简单的例子09 | 通过npm script运行webpack 第二章:webpack基础用法 (12讲)10 | webpack核心概念之entry用法11 | webpack核心概念之output12 | webpack核心