深入浅出的webpack构建工具---AutoDllPlugin插件(八)
深入浅出的webpack构建工具---AutoDllPlugin插件(八)
DllPlugin插件能够快速打包,能把第三方依赖的文件能提前进行预编译打包到一个文件里面去。提高了构建速度。因为很多第三方插件我们并不需要改动它,所以我们想这些第三方库在我们每次编译的时候不要再次构建它就好。因此 DLLPlugin插件就产生了,那么现在有DLLPlugin插件,我们现在为什么还需要一个AutoDllPlugin插件呢?该插件的具体的作用是什么呢?
我们从上一篇文章DllPlugin 可以看到,DllPlugin构建dll的js文件后,在index.html需要手动引入dll文件,因为HtmlWebpackPlugin插件不会把dll.js文件自动打包到页面上去,它只会对bundle.js自动引入进去,因此AutoDllPlugin插件就是来解决这个问题的。
因此推荐 AutoDllPlugin HtmlWebpackPlugin,这两个插件一起使用,因为它可以节省手动将DLL包添加到自己的HTML中。
1. 首先需要安装命令如下:
如果是webpack4以下的版本:如下命令安装:
npm install --save-dev autodll-webpack-plugin@0.3
如果是webpack4版本的话,如下命令安装:
npm install --save-dev autodll-webpack-plugin
我这边是webpack4版本,所以如下命令安装:
npm install --save-dev autodll-webpack-plugin
在webpack.config.js 使用方式如下:
// 引入打包html文件
const HtmlWebpackPlugin = require('html-webpack-plugin'); // 引入 autodll-webpack-plugin
const AutoDllPlugin = require('autodll-webpack-plugin'); module.exports = {
plugins: [
new HtmlWebpackPlugin({
inject: true,
template: './index.html' // 模版文件
}),
new AutoDllPlugin({
inject: true,
filename: '[name]_[hash].js',
entry: {
vendor: [
'jquery'
// .... 更多插件
]
}
})
]
}
因此webpack中所有配置代码如下:
const path = require('path');
// 提取css的插件
const ExtractTextPlugin = require('extract-text-webpack-plugin');
// 清除dist目录下的文件
// const ClearWebpackPlugin = require('clean-webpack-plugin');
const webpack = require('webpack');
// 引入打包html文件
const HtmlWebpackPlugin = require('html-webpack-plugin');
// 引入 DllReferencePlugin
const DllReferencePlugin = require('webpack/lib/DllReferencePlugin');
// 引入 autodll-webpack-plugin
const AutoDllPlugin = require('autodll-webpack-plugin');
module.exports = {
// 入口文件
entry: {
main: './js/main.js'
},
output: {
filename: '[name].bundle.js',
// 将输出的文件都放在dist目录下
path: path.resolve(__dirname, 'dist'),
publicPath: './'
},
module: {
rules: [
{
// 使用正则去匹配
test: /\.styl$/,
use: ExtractTextPlugin.extract({
fallback: {
loader: 'style-loader'
},
use: [
{
loader: 'css-loader',
options: {}
},
{
loader: 'postcss-loader',
options: {
ident: 'postcss',
plugins: [
require('postcss-cssnext')(),
require('cssnano')(),
require('postcss-pxtorem')({
rootValue: 16,
unitPrecision: 5,
propWhiteList: []
}),
require('postcss-sprites')()
]
}
},
{
loader: 'stylus-loader',
options: {}
}
]
})
},
{
test: /\.(png|jpg)$/,
loader: 'url-loader',
options: {
limit: 10000,
name: '[name].[ext]'
}
},
{
test: /\.js$/,
exclude: path.resolve(__dirname, 'node_modules'), // 排除文件
loader: 'babel-loader'
}
]
},
resolve: {
extensions: ['*', '.js', '.json']
},
devtool: 'cheap-module-eval-source-map',
devServer: {
// contentBase: path.join(__dirname, "dist"),
port: 8081,
host: '0.0.0.0',
headers: {
'X-foo': '112233'
},
// hot: true,
inline: true,
// open: true,
overlay: true,
stats: 'errors-only'
},
mode: 'development',
plugins: [
// new ClearWebpackPlugin(['dist']),
new ExtractTextPlugin({
// 从js文件中提取出来的 .css文件的名称
filename: `main.css`
}),
new HtmlWebpackPlugin({
inject: true,
template: './index.html' // 模版文件
}),
new AutoDllPlugin({
inject: true,
filename: '[name]_[hash].js',
entry: {
vendor: [
'jquery'
// .... 更多插件
]
}
})
]
};
更多的配置项,请看官网
注意:这里不需要 webpack.dll.config.js文件
深入浅出的webpack构建工具---AutoDllPlugin插件(八)的更多相关文章
- 深入浅出的webpack构建工具--webpack4+vue搭建环境 (十三)
深入浅出的webpack构建工具--webpack4+vue搭建环境 (十三) 从上面一系列的webpack配置的学习,我们现在来使用webpack来搭建vue的开发环境.首先我们来设想下我们的项目的 ...
- 深入浅出的webpack构建工具---DevServer配置项(二)
深入浅出的webpack构建工具---DevServer配置项(二) 阅读目录 DevServer配置项 1. contentBase 2. port 3. host 4. headers 5. hi ...
- 深入浅出的webpack构建工具---webpack基本配置(一)
深入浅出的webpack构建工具---webpack基本配置(一) 阅读目录 一:webpack入门构建: 1. 安装webpack到全局 2. 安装webpack到本项目. 3. 如何使用webpa ...
- 深入浅出的webpack构建工具---PostCss(五)
一:PostCss是什么? PostCss是一个样式处理工具,它通过自定义的插件和工具生态体系来重新定义css.它鼓励开发者使用规范的css原生语法编写代码,然后配置编译器转换需要兼容的浏览器版本, ...
- 深入浅出的webpack构建工具---HappyPack优化构建(九)
阅读目录 一:什么是HappyPack? 作用是什么? 二:如何在配置中使用HappyPack? 回到顶部 一:什么是HappyPack? 作用是什么? Webpack是允许在NodeJS中的,它是单 ...
- 深入浅出的webpack构建工具--webpack4+vue+router项目架构(十四)
阅读目录 一:vue-router是什么? 二:vue-router的实现原理 三:vue-router使用及代码配置 四:理解vue设置路由导航的两种方法. 五:理解动态路由和命名视图 六:理解嵌套 ...
- 深入浅出的webpack构建工具---DllPlugin DllReferencePlugin提高构建速度(七)
阅读目录 一:什么是DllPlugin 和 DllReferencePlugin?作用是什么? 二:在项目中如何使用 DllPlugin 和 DllReferencePlugin? 三:DllPlug ...
- 深入浅出的webpack构建工具---devTool中SourceMap模式详解(四)
阅读目录 一:什么是SourceMap? 二:理解webpack中的SourceMap的eval,inline,sourceMap,cheap,module 三:开发环境和线上环境如何选择source ...
- 深入浅出的webpack构建工具---babel之配置文件.babelrc(三)
阅读目录 一:理解 babel之配置文件.babelrc 基本配置项 二:在webpack中配置babel 回到顶部 一:理解 babel之配置文件.babelrc 基本配置项 1. 什么是babel ...
随机推荐
- Java基础——Oracle(八)
一.流程控制语句 1) 循环语句 == loop .. end loop 简单的循环,至少被执行一次 create table userinfo (id number, name varchar2( ...
- 关于eclipse项目的x号报错的一些问题
有些时候项目中并未有什么问题 但项目前会有一个X号报错且无法运行项目 我们不妨从jre和Tomcat的一些配置中找原因 1,首先查看jre的安装是否正确,可以看见并未出错 ,如果有问题,重新导入一下即 ...
- html页面字体相关
<!doctype html> <html> <head> <meta charset="utf-8"/> <title> ...
- vue2.X的路由
以 / 开头的嵌套路径会被当作根路径. <router-link> 在vue-router1.X中是以<a v-link=""></a>存在的 ...
- Ps—导出:sql作业配合ps导出csv文件
$dateText=Get-Date #获取当前日期时间 $dateText = $dateText.ToShortDateString() #转为短日期格式(去掉时间部分) $checkDate=( ...
- 纯小白入手 vue3.0 CLI - 3.2 - 路由的初级使用
vue3.0 CLI 真小白一步一步入手全教程系列:https://www.cnblogs.com/ndos/category/1295752.html 尽量把纷繁的知识,肢解重组成为可以堆砌的知识. ...
- plsql调试存储过程卡住的原因以及处理
用PLSQL调试存储过程的时候,经常会遇到这个的情况,点调试后,继续点单步都是灰色,想停下来,但是取消也要点很多次才能取消掉. 就像下面的情况: 一直以为是个BUG,直到最近有人告诉我了真相. 出现这 ...
- Loadrunner 运行场景-场景中的全局变量与关联结果参数
运行场景-场景中的全局变量与关联结果参数 by:授客 QQ:1033553122 A. 全局变量 实验1: globals.h #ifndef _GLOBALS_H #define _GLOB ...
- Android Studio 在项目中引用第三方jar包
在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets { main { ...
- web应用
实现HttpServlet的Web应用 <dependency> <groupId>javax.servlet</groupId> <artifactId&g ...