DllPlugin动态链接库插件

1、使用背景:

  1. 前端框架如vue react,它们体积大,构建慢
  2. 版本较稳定,不常升级版本
  3. 所以同一个版本只构建一次即可,不用每次都重新构建

webpack已经内置DllPlugin支持,不用下载插件

  1. 通过DllPlugin打包出的dll文件
  2. 通过DllRefrencePlugin使用dll文件

DllPlugin不适用于生产环境。

2、在build文件夹中新建一个webpack.dll.js文件

const path = require('path')
const DllPlugin = require('webpack/lib/DllPlugin')
const { srcPath, distPath } = require('./paths')

module.exports = {
  mode: 'development',
  // JS 执行入口文件
  entry: {
    // 把 React 相关模块的放到一个单独的动态链接库
    react: ['react', 'react-dom']
  },
  output: {
    // 输出的动态链接库的文件名称,[name] 代表当前动态链接库的名称,
    // 也就是 entry 中配置的 react 和 polyfill
    filename: '[name].dll.js',
    // 输出的文件都放到 dist 目录下
    path: distPath,
    // 存放动态链接库的全局变量名称,例如对应 react 来说就是 _dll_react
    // 之所以在前面加上 _dll_ 是为了防止全局变量冲突
    library: '_dll_[name]',
  },
  plugins: [
    // 接入 DllPlugin
    new DllPlugin({
      // 动态链接库的全局变量名称,需要和 output.library 中保持一致
      // 该字段的值也就是输出的 manifest.json 文件 中 name 字段的值
      // 例如 react.manifest.json 中就有 "name": "_dll_react"
      name: '_dll_[name]',
      // 描述动态链接库的 manifest.json 文件输出时的文件名称
      path: path.join(distPath, '[name].manifest.json'),
    }),
  ],
}

1、mode: ‘development’,

为了提高构建速度,一般针对开发环境要打包dll,生产环境不用这个

2、入口

3、在package.json

在 "scripts"中添加
“dll”: “webpack --config build/webpack.dll.js”
然后运行npm run dll

4、使用

html引入

webpack.dev.js中插件

 new DllReferencePlugin({
            // 描述 react 动态链接库的文件内容
            manifest: require(path.join(distPath, 'react.manifest.json')),
        }),
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Vue.js 项目中使用动态链接库(DLL)可以提高打包速度和减少文件大小。下面是配置 DLL 的详细步骤: 第一步:创建 DLL 配置文件 在项目根目录下创建一个 vue.config.dll.js 文件,输入以下内容: ```javascript const path = require('path'); const webpack = require('webpack'); module.exports = { mode: 'production', entry: { vendor: ['vue', 'vue-router', 'vuex'] }, output: { path: path.resolve(__dirname, './public/dll'), filename: '[name].dll.js', library: '[name]_library' }, plugins: [ new webpack.DllPlugin({ path: path.resolve(__dirname, './public/dll/[name]-manifest.json'), name: '[name]_library', context: __dirname }) ] }; ``` 其中: - `entry` 指定需要打包到 DLL 中的第三方依赖库,例如:vue、vue-router、vuex 等。 - `output.path` 指定 DLL 文件的输出目录。 - `output.filename` 指定 DLL 文件名的格式。 - `output.library` 指定输出的 DLL 对象名。 - `plugins` 中使用 DllPlugin 插件来生成 manifest 文件。 第二步:配置 Vue.js 项目 打开 vue.config.js 文件,在其中添加以下代码: ```javascript const path = require('path'); module.exports = { configureWebpack: { plugins: [ new webpack.DllReferencePlugin({ context: path.resolve(__dirname), manifest: require('./public/dll/vendor-manifest.json') }) ] } }; ``` 其中: - `configureWebpack` 配置项下使用 DllReferencePlugin 插件来引用 DLL。 - `context` 指定 manifest 文件所在的上下文路径。 - `manifest` 指定要引用的 manifest 文件路径。 第三步:创建并运行脚本 在 package.json 文件中添加以下脚本: ```json "scripts": { "dll": "vue-cli-service --config vue.config.dll.js build --mode production" }, ``` 其中: - `dll` 命令调用 vue-cli-service 来执行 DLL 配置文件的构建。 运行 `npm run dll` 命令,即可生成 DLL 文件和 manifest 文件。 最后,在生产环境中使用这些 DLL 文件,可以减少打包时间和文件大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值