首页 > 其他分享 >webpack与rollup打包工具

webpack与rollup打包工具

时间:2022-10-21 19:01:25浏览次数:78  
标签:代码 rollup webpack 模块 foo 打包

webpack与rollup打包工具

jxZheng jxZheng 冷静 && 勤思考    

一、rollup

 rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,
例如 library 或应用程序。rollup 对代码模块使用新的标准化格式(es6模块语法)

特点:Tree-shaking

首先,ES6 模块语法(import、export)实现了静态加载。
rollup 静态分析了代码中的 import , 并将排除任何未实际引用的代码
所以可以生成轻量、快速,以及低复杂度的 library 和应用程序。

示例

//foo.js
const foo = () => {
    console.log('hello rollup');
};
export { foo };

 

//index.js
import { foo } from './foo';
foo();

打包后的结果

(function() {
    'use strict';
    var foo = function foo() {
        console.log('jx rollup');
    };
    foo();
}());

即rollup的解释是在构建代码阶段,在使用ES6模块化的代码中,借助ES6模块的静态分析,会对你的代码进行静态分析,只打包使用到的代码,减少代码体积。

 

二、在webpack中使用tree-shaking

在webpackde的构建结果中,执行自治性函数,在Manifest记录依赖关系,通过_webpackrequire__加载,在__webpack_module_cache__记录缓存。

需要使用uglify插件压缩无用代码。

 

三、总结

webpack构建体积比rollup的格式大。

代码执行的时候,rollup中iife输出格式,代码执行的速度更快,webpack构建出来的还有依赖查找,而且每个模块通过一个函数包裹形式,执行的时候,就形成了一个个的闭包,占用了内存,当然可以在webpack3使用 ConcatenationPlugin 插件优化这样的输出格式,打包到一个依赖中。


webpack做的tree shaking主要是依赖 UglifyJS 来做的,webpack只是识别无用的export,并且不导出,剩下来的Dead code elimation 都是有Uglify来做。

 

 

标签:代码,rollup,webpack,模块,foo,打包
From: https://www.cnblogs.com/sexintercourse/p/16814514.html

相关文章

  • Webpack 和 Rollup:一样但又不同
    Webpack和Rollup:一样但又不同油墨香^_^于2022-07-2909:53:16发布247收藏1分类专栏:#Webpack文章标签:webpackjavascript前端版权Webpack专栏收录该内容38......
  • 前端:解决项目下载依赖本地服务以及打包白屏问题
    下载依赖本地服务奇怪报错:打包后奇怪报错:1.改变node版本2.把packjson-lock.json删除重新下载依赖问题解决......
  • Python打包成exe,包含cx_oracle的情况
    当Python程序应用了cx_oracle包,打包成功之后,exe文件不能正常运行。需要按照以下步骤执行1,执行pyinstaller-Fmain.py,执行之后生成一个main.spec文件2,按照下图修改spec文......
  • vue 处理打包后加载慢的问题
    在开发项目时引入过多的插件时,容易导致项目打包后chunk-vendors.js文件过大,导致浏览器加载慢的问题,目前有两种解决方式方式一:由于:chunk-vendors文件过大、js没有压缩、服......
  • Winform打包生成exe
    1、首选下载安装MicrosoftVisualStudioInstallerProjects扩展插件 2、新建项目选择模板setup   3、第三步:项目创建成功之后,添加文件1.右击ApplicationFold......
  • Webpack完整打包流程分析
    前言webpack在前端工程领域起到了中流砥柱的作用,理解它的内部实现机制会对你的工程建设提供很大的帮助(不论是定制功能还是优化打包)。下面我们基于webpack5源码结构,对......
  • Webpack中的plugin插件机制
    大家有没有遇到过这些问题:webpack打包之后的文件没有压缩静态文件要手动拷贝到输出目录代码中写了很多环境判断的多余代码上一篇「webpack核心特性」loader说到......
  • Fabric8 Docker Maven Plugin 如何让部署的时候执行 Docker 打包推送
    配置方案在下面的这几句话。<executions><execution><id>default</id><phase......
  • iOS开发- 打包ipa,让别人设备安装你的App
    一般在接外包的时候,通常第三方需要安装你的app进行测试(这时候你的app肯定是还没传到appstore之前)。这种情况下,如果是企业账号就好办了,随便安装..但是个人开发者账......
  • iOS开发- 打包ipa,让别人设备安装你的App
    一般在接外包的时候,通常第三方需要安装你的app进行测试(这时候你的app肯定是还没传到appstore之前)。这种情况下,如果是企业账号就好办了,随便安装..但是个人开发者账......