Tree Shaking和sideEffects配置

简介: 通过修改 sideEffects 配置选项,来设置CSS文件打包的时候取消 Tree Shaking 的影响

需要将 mode 配置设置成 development,以确定 bundle 不会被压缩:

const path = require('path');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist'),
  },
 mode: 'development',
 optimization: {
   usedExports: true,
 },
};

src/title.js

document.title = "改标题";
export function getTitle() {
  console.log("getTitle");
}

src/index.js

import './title.js'
console.log('hello world')

bundle.js

(()=>{"use strict";document.title="改标题",console.log("hello world")})();

发现保留了代码 document.title="改标题" ,如果想这行代码也被 Tree Shaking 删除掉,可以在 package.json 文件中加上 "sideEffects": false, 这个配置,然后重新打包就没有这行代码了。

(()=>{"use strict";console.log("hello world")})();

注意,将文件标记为 side-effect-free(无副作用) ,所有导入文件都会受到 tree shaking 的影响。如果在项目中使用类似 css-loader 并 import 一个 CSS 文件,将会在生产模式中删除。

src/index.css

html,body {
  background: red;
}

src/index.js

import './index.css'

console.log('hello world')

bundle.js

(()=>{"use strict";console.log("hello world")})();

发现打包的时候 index.css 的样式并没有打包进来。现在可以通过修改 sideEffects 配置选项,来设置CSS文件打包的时候取消 Tree Shaking 的影响。

sideEffects:["*.css"]

此数组支持简单的 glob 模式匹配相关文件。其内部使用了 glob-to-regexp(支持:***{a,b}[a-z])。如果匹配模式为 *.css,且不包含 /,将被视为 */.css。

相关文章
|
5天前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
5天前
|
监控 前端开发 测试技术
如何使用 Tree Shaking 进行代码优化
Tree Shaking 是一种通过去除未使用的代码来优化项目打包体积的技术,在现代前端开发中被广泛应用
|
18天前
|
前端开发 UED
Tree shaking 技术的原理
【10月更文挑战第14天】tree shaking 技术基于模块系统和静态分析,通过准确识别和移除未使用的代码,实现代码的优化和精简。它是现代前端开发中不可或缺的一部分,有助于提高应用的性能和用户体验。
|
18天前
|
JavaScript 前端开发 UED
vue 提高 tree shaking 的效果
【10月更文挑战第23天】提高 Vue 中 Tree shaking 的效果需要综合考虑多个因素,包括模块的导出和引用方式、打包工具配置、代码结构等。通过不断地优化和调整,可以最大限度地发挥 Tree shaking 的优势,为 Vue 项目带来更好的性能和用户体验。
|
18天前
|
JavaScript 测试技术 UED
解决 Vue 项目中 Tree shaking 无法去除某些模块
【10月更文挑战第23天】解决 Vue 项目中 Tree shaking 无法去除某些模块的问题需要综合考虑多种因素,通过仔细分析、排查和优化,逐步提高 Tree shaking 的效果,为项目带来更好的性能和用户体验。同时,持续关注和学习相关技术的发展,不断探索新的解决方案,以适应不断变化的项目需求。
|
6月前
|
定位技术 索引
R-tree 总结
R-tree 总结
78 0
|
JavaScript 前端开发 编译器
什么是tree-shaking?
Tree-shaking 是一个用于优化 JavaScript 应用程序的技术,它可以在打包过程中去除无用的代码,从而减小最终打包后的文件大小。
|
存储 数据格式
1367:查找二叉树(tree_a)
1367:查找二叉树(tree_a)
|
存储 数据库 索引
B-Tree和B+Tree特点
B - Tree和B + Tree特点
138 0
|
前端开发 JavaScript UED
使用 Tree Shaking 精简你的前端代码
在现代 Web 开发中,前端性能优化是一个关键的课题。优化代码大小和加载时间对于提供优秀的用户体验至关重要。Tree Shaking 技术成为了解决这一问题的重要工具。本文将介绍 Tree Shaking 技术的原理、优点和缺点,以及在知名项目中的使用场景,帮助初学者快速掌握这一技术
192 0