• webpack打包速度大幅度提升的方法


    前言:我们开发中经常会遇见这样一个问题,每次webpack打包,都会重复的打包引入node_modules中的代码,都会极大的占用webpack打包的速度,我们可以这样的处理,将node_modules中这些不变的代码提前打包一次,因为node_modules中代码不会改变,所以以后直接把这个提前打包的js文件引入项目,以后打包就不用打包node_modules,项目打包速度得到极大提升。

    1、准备工作

    yarn add add-asset-html-webpack-plugin   //引入第一次构建的dll.js文件使用.
    

    2、在项目build目录下新建wepback.dll.js

    const path = require('path');
    const webpack = require('webpack');
    module.exports = {
        entry: {
            venders: ['react', 'react-dom']   //这是我的demo项目,所以只引入了这两个插件,你们可以把node_modules中的插件全部引入
        },
        output: {
            filename: '[name].dll.js',
            path: path.resolve(__dirname, '../dll'),
            library: '[name]'    //打包生成插件,在浏览器console中可以直接调用这个函数
        },
        plugins: [
            new webpack.DllPlugin({
                name: '[name]',
                path: path.resolve(__dirname, "../dll/[name].mainfest.json")  //这个是生成的venders.dll.js与node_modules中模块映射关系,如果有就不打包node_modules中的模块,直接使用全局变量中的模块
            })
        ]
    }
    

    3、package.json中添加以下命令,并运行 yarn build:dll

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

    4、项目中使用webpack.dll.js的模块,而不是打包重新引入

    const path = require('path');
    const AddAssetHtmlPlugin = require('add-asset-html-webpack-plugin');
    const webpack = require('webpack');
    module.exports = {
        plugins: [
            new AddAssetHtmlPlugin({ filepath: require.resolve('../dll/venders.dll.js') }),
            new webpack.DllReferencePlugin({
                manifest: path.resolve(__dirname, '../dll/venders.mainfest.json')
            })
        ]
    }
    

    重新打包试下,项目打包速度瞬间是不是上去了

  • 相关阅读:
    《团队-团队编程项目中国象棋-成员简介及分工》
    团队-编程项目 中国象棋-需求分析
    结对编程:贪吃蛇项目
    软件工程进阶
    JAVA第二次作业
    JAVA第一次作业
    JS解决重复绑定问题以及获取事件
    ECMAScript5学习笔记--第十四章 程序
    ECMAScript5学习笔记--第十三章 函数定义
    ECMAScript5学习笔记--第十二章 语句
  • 原文地址:https://www.cnblogs.com/uimeigui/p/14084021.html
Copyright © 2020-2023  润新知