博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack学习笔记(六)优化
阅读量:6176 次
发布时间:2019-06-21

本文共 1846 字,大约阅读时间需要 6 分钟。

1 loader

使用include,缩小编译范围:

rules: [{   test: /\.js$/,   include: path.resolve(__dirname, '../src'),  use: [{    loader: 'babel-loader'    }]  }]

 2 使用resolve 设置省略的后缀名和默认的文件名

module.exports = {  resolve: {    extensions: ['.js','jsx'], //设置省略的后缀    mainFiles:['index','child'] //设置默认打开的文件名  }}

3 目标:第三方模块只打包一次。

1) 第三方模块只打包一次;

2)我们引入第三方模块的时候,要去使用dll文件引入

对于第三方模块,不会经常变化的库,比如 react、 react-dom、 doash等库,打包的时候使用 webpack.dll.js文件:

const path = require('path');module.exports = {  mode: 'production',  entry: {    vendors: ['lodash','react', 'react-dom'] //这里规定单独打包的文件  },  output: {    filename: '[name].dll.js',    path: path.resolve(__dirname, '../dll'),    library: '[name]' //打包生成一个(library)库,库的名字是 vendors,在全局变量中使用 vendors 调用这些库  }}

命令行:

{  "scripts":{    "build:dll":"webpack --config ./build/webpack.dll.js"  }}

这样就会把这几个库中的js打包到 dll文件夹下的 vendors.dll.js

3.2 打包成功之后,如何在业务代码中使用呢?

安装:   import install add-asset-html-webpack-plugin --save 

const AddAssetHtmlWebpackPlugin = require('add-asset-html-webpack-plugin');module.exports = {  plugins:[    new AddAssetHtmlWebpackPlugin({ //向生成的html中添加下面的代码      filepath: path.resolve(__dirname,'../dll/vendors.dll.js')     })  ]}

 

 

const path = require('path');const webpack = require('webpack');module.exports = {  mode: 'production',  entry: {    vendors: ['lodash'],    react: ['react', 'react-dom'],    jquery: ['jquery']  },  output: {    filename: '[name].dll.js',    path: path.resolve(__dirname, '../dll'),    library: '[name]'  },  plugins: [    new webpack.DllPlugin({      name: '[name]', //对生成的library库分析,并把映射关系放再 下面的path中      path: path.resolve(__dirname, '../dll/[name].manifest.json'),    })  ]}

 

然后在webpack.comm.js中

{  plugins:[    webpack.DllReferencePlugin({      manifest:path.resolve(__dirname,'../dll/vendors.manifest.json')    })  ]}

 

转载于:https://www.cnblogs.com/xiaozhumaopao/p/10665658.html

你可能感兴趣的文章
dedeCMS如何给频道页添加缩略图
查看>>
CoreSeek快速安装
查看>>
Linux 网络性能调试工具Netstat
查看>>
我的友情链接
查看>>
报表下载SSH
查看>>
我的友情链接
查看>>
Raid磁盘阵列真的是100%的安全吗?raid有哪些常见的故障?
查看>>
Raid5两块硬盘离线解决方案 -阵列数据恢复案例
查看>>
IBM AIX存储层结构介绍 / 常用命令整理
查看>>
sudo用法简记
查看>>
有关宏定义的一篇文章
查看>>
Kubernetes 基本概念
查看>>
Linux命令:ssh,scp使用及免密码登录
查看>>
我的友情链接
查看>>
在CentOS上编译安装Nginx+实验环境搭建+测试
查看>>
支持二次开发的Zigbee模块(SNAP技术)
查看>>
我的友情链接
查看>>
软件测试常用术语
查看>>
linux磁盘与文件系统管理
查看>>
ORACLE 索引详解
查看>>