方式一,传入字符串参数 
new webpack.optimize.CommonsChunkPlugin(‘common.js’), // 默认会把所有入口节点的公共代码提取出来,生成一个common.js

  1. var HtmlWebpackPlugin = require('html-webpack-plugin');
  2. var webpack = require('webpack');
  3.  
  4. var extractTextPlugin = require('extract-text-webpack-plugin');
  5.  
  6. module.exports = {
  7. // entry是入口文件,可以多个,代表要编译那些js
  8. //entry:['./src/main.js','./src/login.js','./src/reg.js'],
  9.  
  10. entry:
  11. {
  12. 'main':'./src/main.js',
  13. 'user':['./src/login.js','./src/reg.js'],
  14. 'index':['./src/index.js']
  15. },
  16.  
  17. externals:{
  18. 'jquery':'jQuery'
  19. },
  20.  
  21. module:{
  22. loaders:[
  23. // {test:/\.css$/,loader:'style-loader!css-loader'},
  24. {test:/\.css$/,loader:extractTextPlugin.extract('style','css')}
  25. ],
  26. },
  27.  
  28. output:{
  29. path: __dirname+'/build/js', // 输出到那个目录下(__dirname当前项目目录)
  30. filename:'[name].js' //最终打包生产的文件名
  31. },
  32.  
  33. plugins:[
  34. new HtmlWebpackPlugin({
  35. filename: __dirname+'/build/html/login-build.html',
  36. template:__dirname+'/src/tpl/login.html',
  37. inject:'body',
  38. hash:true,
  39. chunks:['main','user','common.js'] // 这个模板对应上面那个节点
  40. }),
  41.  
  42. new HtmlWebpackPlugin({
  43. filename: __dirname+'/build/html/index-build.html',
  44. template:__dirname+'/src/tpl/index.html',
  45. inject:'body',
  46. hash:true,
  47. chunks:['index','common.js'] // 这个模板对应上面那个节点
  48. }),
  49.  
  50. // css抽取
  51. new extractTextPlugin("[name].css"),
  52.  
  53. // 提供公共代码
  54. new webpack.optimize.CommonsChunkPlugin('common.js'), // 默认会把所有入口节点的公共代码提取出来,生成一个common.js
  55. ]
  56. }

方式二,有选择的提取公共代码

  1. // 提供公共代码
  2. // 默认会把所有入口节点的公共代码提取出来,生成一个common.js
  3. // 只提取main节点和index节点
  4. new webpack.optimize.CommonsChunkPlugin('common.js',['main','index']),

方式三,有选择性的提取(对象方式传参) (推荐)

  1. new webpack.optimize.CommonsChunkPlugin({
  2. name:'common', // 注意不要.js后缀
  3. chunks:['main','user','index']
  4. }),

通过CommonsChunkPlugin,我们把公共代码专门抽取到一个common.js,这样业务代码只在index.js,main.js,user.js

webpack.optimize.CommonsChunkPlugin插件的使用的更多相关文章

  1. 关于webpack.optimize.CommonsChunkPlugin的使用二

    Note:当有多个入口节点的时候,只有所有入口节点都引入了同一个模块的时候,webpack.optimize.CommonsChunkPlugin才会将那个模块提取出来,如果其中一个入口节点没有引入该 ...

  2. 使用webpack.optimize.CommonsChunkPlugin提供公共代码

    在webpack4里使用webpack.optimize.CommonsChunkPlugin时,报错,webpack4删除了常用的 CommonsChunkPlugin ,提示我们用config.o ...

  3. webpack.optimize.CommonsChunkPlugin

    打包第三方控件:比如jquery,angular,bootstrap.... const CommonsChunkPlugin = require("webpack/lib/optimize ...

  4. webpack代码分离CommonsChunkPlugin插件的使用(防止重复)

    1.webpack.config.js中添加: const path = require('path'); + const webpack = require('webpack'); const HT ...

  5. webpack 简单笔记(二)CommonsChunkPlugin插件

    接下来就要使用CommonsChunkPlugin插件 (一)单一入口,模块单一引用,分文件输出,单一入口,模块重复引用,分文件输 main.js代码 require('./static/js/mai ...

  6. webpack进阶之插件篇

    一.插件篇 1. 自动补全css3前缀 autoprefixer 官方是这样说的:Parse CSS and add vendor prefixes to CSS rules using values ...

  7. 详解用webpack的CommonsChunkPlugin提取公共代码的3种方式(注意webpack4.0版本已不存在)

    Webpack 的 CommonsChunkPlugin 插件,负责将多次被使用的 JS 模块打包在一起. CommonsChunkPlugin 能解决的问题 在使用插件前,考虑几个问题: 对哪些 c ...

  8. [转] 用webpack的CommonsChunkPlugin提取公共代码的3种方式

    方式一,传入字符串参数 new webpack.optimize.CommonsChunkPlugin(‘common.js’), // 默认会把所有入口节点的公共代码提取出来,生成一个common. ...

  9. webpack关于CommonsChunkPlugin在高版本被移除的替代方案问题

    1.在指南的缓存章节里webpack.config.js文件中,使用new的方法会报错 const webpack = require('webpack'); + new webpack.optimi ...

随机推荐

  1. 用TypeScript开发了一个网页游戏引擎,开放源代码

    最开始学习电脑编程的原动力之一就是想自己编写游戏,一方面很好奇这些游戏是怎么做出来的,另一方面觉得有些地方设计的不合理,希望电脑游戏既能让人玩的有趣,又不浪费时间. 学校五年,毕业十年,学用了十多种编 ...

  2. Web服务器具体开发流程

    下面是我个人对Web服务器开发流程的一点理解,下面做出了大概的模型,实现了基本的功能,下面也有所有的代码可以提供参考: 一开始学的时候不要把网站想的太复杂了,把网站的流程和大概的原理框架搞清楚,在通过 ...

  3. XMPP学习——3、XMPP协议学习补充

    流基础 两个基本概念,使得XMPP实体之间的小的结构化信息有效载荷能快速地进行异步交换:XML流和XML节.这些术语的定义如下. XML流的定义: XML流是一个容器,用于任何两个实体通过网络进行XM ...

  4. 如何使用SSL pinning来使你的iOS APP更加安全

    SSL pinning在构建一个高度安全的移动APP上扮演了一个十分重要的角色.然而如今好多用户在使用无线移动设备去访问无数不安全的无线网络. 这篇文章主要覆盖了SSL pinning 技术,来帮助我 ...

  5. 接口测试中三种传参请求(Map、request、Integer)解析

    注册企业接口传入的是一个request,查询企业接口传入的是一个integer:根据名称和国家名称模糊匹配接口传入的是一个Map:针对三种不同的传参我怎么作接口测试呢? 1 package com.w ...

  6. 后台管理UI皮肤的选择

    后台管理UI的选择 目录 一.EasyUI 二.DWZ JUI 三.HUI 四.BUI 五.Ace Admin 六.Metronic 七.H+ UI 八.Admin LTE 九.INSPINIA 十. ...

  7. composer 学习资料

    今天看了一下composer,前几天开始用包依赖,以前一直都是自己手动配.今天用了composer,要学习的话可以按照以下链接学习: 1 官方文档: http://www.phpcomposer.co ...

  8. fillStyle线性渐变

    废话小说,沾待马 <!DOCTYPE HTML> <head> <meta charset = "utf-8"> <title>ca ...

  9. xxx is not in the sudoers file.This incident will be reported.的解决方法 (一般用户不能执行sudo)

    1.切换到root用户下 2.添加sudo文件的写权限,命令是:chmod u+w /etc/sudoers 3.编辑sudoers文件vi /etc/sudoers找到这行 root ALL=(AL ...

  10. C语言(函数)学习之index、rindex

    函数定义:char *index(const char *s, int c); 头文件:    #include strings.h 函数说明:index()用来找出参数s 字符串中第一个出现的参数c ...