1.设置多个入口起点

多用于提取公共类库

a、利用commonChunkPlugin

const webpack= require('webpack');
const path = require('path');
const HtmlWebpackPlugin= require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');

module.exports = {
entry: {
main: './src/main.js',
  //工具类放在一个入口
  //当内容为数组时,将创建多个主入口,生成一个chunk
vendor: ['jquery','angular']
},
output: {
filename: '[name].[chunkhash].js',
path: path.resolve(__dirname, 'dist'),
publicPath: './'
},
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},{
test: /\.(png|jpg|gif|svg)$/,
loader: 'file-loader',
options: {
name: '[name].[ext]?[hash]'
}
},{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
'scss': 'vue-style-loader!css-loader!sass-loader',
'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax',
}
// other vue-loader options go here
}
}
]
},
plugins: [
new HtmlWebpackPlugin({
title: 'Output Management'
}),
new CleanWebpackPlugin(['dist']),
new webpack.optimize.CommonsChunkPlugin({
      name: 'vendor',
      filename: 'librarys.js'
})
],
devtool: 'source'
};

这样就能生成librarys.js,包含jquery与angular,但值得注意的是会连同公共类库一起打包

b.利用external提取公共类库(推荐方法)

const path = require('path');
const HtmlWebpackPlugin= require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin')
var ManifestPlugin = require('webpack-manifest-plugin');
const webpack= require('webpack'); module.exports = {
entry: {
main: './src/main.js'
},
output: {
//非覆盖更新
filename: '[name].[chunkhash].js',
path: path.resolve(__dirname, 'dist'),
publicPath: './'
},
externals: {
jquery: 'jquery'
},
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},{
test: /\.(png|jpg|gif|svg)$/,
loader: 'file-loader',
options: {
name: '[name].[ext]?[hash]'
}
},{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
'scss': 'vue-style-loader!css-loader!sass-loader',
'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax',
}
}
}
]
},
plugins: [
new HtmlWebpackPlugin({
title: 'Output Management'
}),
new CleanWebpackPlugin(['dist'])
],
devtool: 'source'
};

注意这里使用的是使用全局变量的方式,所以得手动在index.html中引入jquery

2.commonChunkPlugin

将公共依赖放入模块提取到已有的入口chunk中,或者提取到新生成的chunk(常见)

4.动态载入

chunkFilename 非入口chunk名称

return import(/*webpackChunkName: "ladash"*/'lodash').then() 懒加载

最新文章

  1. tomcat相关问题
  2. PHP面向对象04_串行化
  3. Hiredis 基本使用
  4. [xampp]在Crunch Bang下安装xampp1.8.3
  5. linux程序调试常用命令
  6. linux设备驱动之select
  7. DataUml Design 课程6-DataUML Design 1.1版本号正式宣布(支持PD数据模型)
  8. 一个可以提高开发效率的Git命令-- Cherry-Pick
  9. LeetCode 240 - 搜索二维矩阵 II
  10. ELK部署详解--elasticsearch
  11. java之webservice客户端
  12. 将不确定变为确定~老赵写的CodeTimer是代码性能测试的利器
  13. ORA-00020:maximum number of processes (150) exceeded
  14. linux 程序实现后台运行
  15. [原]unity3D 移动平台崩溃信息收集
  16. java 中常见的一些错误
  17. Python3 pip出现Fatal error in launcher: Unable to create process using '"'
  18. shell 输出双引号
  19. hdu 5468(dfs序+容斥原理)
  20. C、C++数据类型所占字节数

热门文章

  1. DotnetBrowser高级教程-(4)使用MVC框架2-接收与返回模型
  2. 【唯星宠物】——BootStrap/Mysql/PHP/Ajax爬坑之正则验证登录注册子页
  3. OPENCV中数字图像处理知识运用
  4. javascript 匿名函数和模块化
  5. jquery实现图片的依次加载图片
  6. 【Java】 Spring依赖注入小试牛刀:编写第一个Spring ApplicationContext Demo
  7. c# mvc 路由规则学习片段
  8. linux下复制文件夹命令
  9. JAVA中两个Set比较找出交集、差集、并集
  10. C#游戏开发高速新手教程Unity5.5教程