webpack优化篇(四十七):缩小构建目标

Posted 凯小默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webpack优化篇(四十七):缩小构建目标相关的知识,希望对你有一定的参考价值。

说明

玩转 webpack 学习笔记

目的

目的:尽可能的少构建模块

比如 babel-loader 不解析 node_modules

减少文件搜索范围

  • 优化 resolve.modules 配置(减少模块搜索层级)
  • 优化 resolve.mainFields 配置
  • 优化 resolve.extensions 配置
  • 合理使用 alias
module.exports = 
    resolve: 
        alias: 
            react: path.resolve(__dirname, './node_modules/react/dist/react.min.js'),
        ,
        modules: [path.resolve(__dirname, 'node_modules')],
        extensions: ['.js'], // 表示在 import 文件时文件后缀名可以不写
        mainFields: ['main'], // 当从 npm 包中导入模块时,此选项将决定在 package.json 中使用哪个字段导入模块。
    
;

实战

先不缩小构建目标,然后运行 npm run build

然后添加缩小目标的配置


    test:/.js$/,
    include: path.resolve("src"),
    use: [
        // 
        //     loader: 'thread-loader',
        //     options: 
        //         workers: 3
        //     
        // ,
        // 'babel-loader',
        'happypack/loader',
        // 'eslint-loader'
    ]
,

resolve: 
    alias: 
        'react': path.resolve(_dirname, './node_modules/react/umd/react.production.min.js'),
        'react-dom': path.resolve(_dirname, './node_modules/react-dom/umd/react-dom.production.min.js'),
    ,
    extensions: ['.js'], // 表示在 import 文件时文件后缀名可以不写
    mainFields: ['main'], // 当从 npm 包中导入模块时,此选项将决定在 package.json 中使用哪个字段导入模块。

下面运行打包命令,可以看到速度还是有一些提升的。

以上是关于webpack优化篇(四十七):缩小构建目标的主要内容,如果未能解决你的问题,请参考以下文章

webpack优化篇(四十三):多进程/多实例构建:资源并行解析可选方案

webpack优化篇(四十二): 使用高版本的 webpack 和 Node.js

webpack优化篇(四十九):使用 webpack 进行图片压缩

webpack优化篇(四十四):多进程并行压缩代码

webpack优化篇(四十一):体积分析:使用 webpack-bundle-analyzer

webpack优化篇(四十):速度分析:使用 speed-measure-webpack-plugin