首页 > 其他分享 >webpack打包优化方案

webpack打包优化方案

时间:2024-04-18 18:33:08浏览次数:24  
标签:... exports config module js webpack 优化 打包

以下是一些常见的webpack打包优化方案:

1.使用生产模式(production mode):

// webpack.config.js
module.exports = {
  mode: 'production',
  // ... 其他配置
};

2.代码分割(Code Splitting):

// webpack.config.js
module.exports = {
  // ...
  optimization: {
    splitChunks: {
      chunks: 'all',
    },
  },
};

3.缓存(Caching):

// webpack.config.js
module.exports = {
  // ...
  output: {
    filename: '[name].[contenthash].bundle.js',
    chunkFilename: '[name].[contenthash].chunk.js',
  },
};

4.使用异步导入(Async Import):

// 在需要按需加载的地方使用动态导入
import('./SomeModule').then(module => {
  // do something with the module
});

5.使用HardSourcePlugin来缓存模块解析结果:

// webpack.config.js
const HardSourcePlugin = require('hard-source-webpack-plugin');
 
module.exports = {
  // ...
  plugins: [
    new HardSourcePlugin(),
  ],
};

6.使用uglifyjs-webpack-plugin或terser-webpack-plugin进行更深层次的代码压缩:

// webpack.config.js
const TerserPlugin = require('terser-webpack-plugin');
 
module.exports = {
  optimization: {
    minimize: true,
    minimizer: [new TerserPlugin({ /* 更多配置 */ })],
  },
};

7.优化loader配置,比如使用cache-loader来缓存Babel编译结果:

// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /\.js$/,
        use: ['cache-loader', 'babel-loader'],
        exclude: /node_modules/,
      },
      // ... 其他规则
    ],
  },
};

8.使用webpack-bundle-analyzer插件分析bundle大小:

// webpack.config.js
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
 
module.exports = {
  plugins: [
    new BundleAnalyzerPlugin({
      analyzerMode: 'static', // 分析结果以静态页面的形式打开
    }),
  ],
};

 

标签:...,exports,config,module,js,webpack,优化,打包
From: https://www.cnblogs.com/czhowe/p/18144186

相关文章

  • 10 个优化技巧,减少 Docker 镜像大小【转】
    什么是docker?Docker是一种容器引擎,可以在容器内运行一段代码。Docker镜像是在任何地方运行您的应用程序而无需担心应用程序依赖性的方式。要构建镜像,docker使用一个名为Dockerfile的文件。Dockerfile是一个包含许多指令(RUN、COPY、EXPOSE等)的文件。成功执行这些命令后,do......
  • 线段树优化建图学习笔记
    关于线段树优化建图对于存在一些单点连向区间或区间连向单点的边,且直接暴力连边会爆炸的题目,就可以考虑使用线段树优化建图。边数量的规模将会是\(n\logn+a\)。例题题目链接。从\(s\)到\(t\)的最短路就是模板。如果暴力建边,最坏情况下需要建的边在\(n^2\)级别,显然是......
  • 2024-04-18 使用webpack减少打包文件数量
    减少Webpack打包文件的数量通常涉及多个策略和配置选项。下面是一些具体的方法和示例代码,帮助你实现这一目标:1.代码分割(CodeSplitting)使用动态导入(import())语法将代码分割成多个块,这样Webpack会为每个块生成一个单独的文件。//假设我们有一个大型的组件库//而不是......
  • Unity性能优化——托管堆/GC
    了解托管堆许多Unity开发者面临的另一个常见问题是托管堆的意外扩展。在Unity中,托管堆的扩展比收缩容易得多。此外,Unity的垃圾收集策略往往会使内存碎片化,因此可能阻止大型堆的收缩。托管堆的工作原理及其扩展原因“托管堆”是由项目脚本运行时(Mono或IL2CPP)的内存管理器......
  • 训练时的显存优化
    总览HuggingFace的这篇文章总结了一系列节约显存的方法,非常全面。训练时显存占用的组成:模型参数优化器状态输入张量和其他临时张量激活值梯度通信缓冲“激活值”可能有点难理解。这是指像是dropout的mask、LayerNorm的\(\mu\\sigma^2\)等,不是梯度但参加到梯......
  • Unity Android 打包报错解决方案记录
    1.安卓版本过低报错提示PickedupJAVA_TOOL_OPTIONS:-Dfile.encoding=UTF-8D:\Develop\Unity\HRVTest\Library\Bee\Android\Prj\Mono2x\Gradle\unityLibrary\src\main\java\com\unity\androidnotifications\UnityNotificationManager.java:164:错误:找不到符号......
  • Unity性能优化——资源优化(一)
    实际项目中发现的许多问题都是源自无心之过:临时的“测试”更改和疲惫不堪的开发人员的误点击可能会暗地里添加性能不良的资源或更改现有资源的导入设置。对于任何大规模的项目,最好是将防止人为错误作为第一道防线。编写一小段代码来禁止将4K未压缩纹理添加到项目中,是相对简单的......
  • JavaFx项目打包成exe,并集成Jre,使Java项目在任意机器运行
    1.关键点:通过springboot打包插件,将项目依赖都打到一个jar包内。以下是pom配置文件:<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artif......
  • Ansible:更快点,执行过程分析、异步、效率优化【转】
    Ansible你快点:Ansible执行过程分析、异步、效率优化Ansible虽然方便,但有个"为人诟病"的问题:任务执行速度太慢了,在有大量任务、大量循环任务时,其速度之慢真的是会让人等到崩溃的。Ansible官方给了一些优化选项供用户选择,还可以去网上寻找优化Ansible相关的插件。但在调优Ansible......
  • HarmonyOS 优化布局性能
    背景介绍 用户界面(UI)布局是应用程序中至关重要的部分,它不仅影响应用的外观和用户体验,还直接影响应用的性能。不合理的布局可能会导致过度的布局计算和界面嵌套,从而增加渲染和计算的开销,导致性能下降。 常用布局方式 HarmonyOS的ArkUI框架提供了多种布局方式,包括线性布局......