WEBPACK和ROLLUP构建前端工具库

 

1. WEBPACK

  • webpack 提供了构建和打包不同模块化规则的库,只是需要自己去搭建开发底层架构。
  • vue-cli,基于 webpack , vue-cli 脚手架工具可以快速初始化一个 vue 应用,它也可以初始化一个构建库。

2. ROLLUP

  • rollup 是一个专门针对 JavaScript 模块打包器,可以将应用或库的小块代码编译成更复杂的功能代码。
  • Vue、React 等许多流行前端框架的构建和打包都能看到 rollup 的身影。

ROLLUP 和 WEBPACK应用场景

  • webpack 主要职能是开发应用,而 rollup 主要针对的就是 js 库的开发,如果你要开发 js 库,那 webpack 的繁琐配置和打包后的文件体积就不太适用了,通过 webpack 打包构建出来的源代码增加了很多工具函数以外的模块依赖代码。
  • rollup 只是把业务代码转码成目标 js ,小巧且轻便。rollup 对于代码的 Tree-shaking 和 ES6 模块有着算法优势上的支持,如果只想构建一个简单的库,并且是基于 ES6 开发的,加上其简洁的 API,rollup 得到更多开发者的青睐。

rollup 全家桶

•  rollup(工具库打包构建核心包)

• rollup-plugin-livereload(rollup 插件,热更新,方便本地 debugger 开发)

• rollup-plugin-serve(rollup 插件,本地服务代理,方便在本地 html 中调试工具)

• rollup-plugin-terser(rollup 插件,代码压缩混淆)

• rollup-plugin-visualizer(rollup 插件,可视化并分析 Rollup bundle,以查看模块占用)

•  @rollup/plugin-babel(rollup 插件,rollup 的 babel 插件,ES6 转 ES5)

• @rollup/plugin-commonjs(rollup 插件,用来将 CommonJS 模块转换为 ES6,这样它们就可以包含在 Rollup 包中)

• @rollup/plugin-json(rollup 插件,它将.json 文件转换为 ES6 模块)

•  @rollup/plugin-node-resolve(rollup 插件,它使用节点解析算法定位模块,用于在节点模块中使用第三方 node_modules 包)

• @rollup/plugin-typescript(rollup 插件,对 typescript 的支持,将 typescript 进行 tsc 转为 js)

 

typescript 相关

• typescript(使用 ts 开发工具库)

• tslib(TypeScript 的运行库,它包含了 TypeScript 所有的帮助函数)

•  @typescript-eslint/eslint-plugin(TypeScript 的 eslint 插件,约束 ts 书写规范)

• @typescript-eslint/parser(ESLint 解析器,它利用 TypeScript ESTree 来允许 ESLint 检测 TypeScript 源代码)

 

文档相关

• typedoc(TypeScript 项目的文档生成器)

• gulp(使用 gulp 构建文档系统)

• gulp-typedoc(Gulp 插件来执行 TypeDoc 工具)

• browser-sync(文档系统热更新)

单元测试相关

• jest(一款优雅、简洁的 JavaScript 测试框架)

• @types/jest(Jest 的类型定义)

• ts-jest(一个支持源映射的 Jest 转换器,允许您使用 Jest 来测试用 TypeScript 编写的项目)

• @babel/preset-typescript(TypeScript 的 Babel 预设)

其他依赖

• eslint(代码规范约束)

• @babel/core(@rollup/plugin-babel 依赖的 babel 解析插件)

• @babel/plugin-transform-runtime(babel 转译依赖)

• @babel/preset-env(babel 转译依赖)

• chalk(控制台字符样式)

• rimraf(UNIX 命令 rm -rf 用于 node)

• cross-env(跨平台设置 node 环境变量)

 

参考资料

[1] rollup 英文文档(https://rollupjs.org/guide/en/#quick-start

[2] rollup 中文文档(https://rollupjs.org/guide/zh/#introduction

[3] Rollup.js 实战学习笔记(https://chenshenhai.github.io/rollupjs-note/

[4] Rollup 打包工具的使用(https://juejin.cn/post/6844904058394771470

[5] TypeScript、Rollup 搭建工具库(https://juejin.cn/post/6844904035309322254

[6] 使用 rollup.js 封装各项目共用的工具包(https://juejin.cn/post/6993720790046736420

[7] 如何开发一个基于 TypeScript 的工具库并自动生成文档(https://juejin.cn/post/6844903881030238221

[8] 一款优雅、简洁的 JavaScript 测试框架(https://jestjs.io/zh-Hans/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebpackRollup都是流行的JavaScript模块打包工具,用于将多个模块打包成一个或多个输出文件。尽管它们有相似的目标,但它们在一些方面有不同的设计和使用方式。 Webpack是一个功能强大且灵活的打包工具,适用于构建复杂的前端应用程序。它支持各种资源类型(如JavaScript、CSS、图片等),并提供了丰富的插件生态系统。Webpack通过配置文件来管理打包过程,可以通过加载器(Loaders)和插件(Plugins)进行扩展。它提供了许多功能,如代码分割、热模块替换、代码压缩等,以帮助开发者优化和管理前端项目的构建过程。 Rollup是一个面向现代JavaScript模块的打包工具,专注于生成更小、更高效的输出文件。它在处理ES模块(ES Modules)方面表现出色,并且对于和组件的打包非常适用。Rollup使用配置文件来管理打包过程,具有简单和直观的配置选项。与Webpack相比,Rollup更注重于代码优化和Tree Shaking等特性,可以生成更小且更高性能的输出文件。 以下是一些WebpackRollup的主要特点和用例: Webpack: - 适用于构建复杂的前端应用程序。 - 支持各种资源类型的打包,如JavaScript、CSS、图片等。 - 提供了丰富的插件生态系统,可以通过插件扩展功能。 - 具备代码分割、热模块替换、代码压缩等功能。 - 更适合处理大型项目和复杂的依赖关系。 Rollup: - 适用于打包和组件,生成更小、更高效的输出文件。 - 对ES模块(ES Modules)有良好的支持。 - 专注于代码优化和Tree Shaking,生成精简的输出结果。 - 更适合构建独立的或组件,供他人使用。 在选择WebpackRollup时,你应该考虑项目的需求和特点。如果你需要构建复杂的前端应用程序,并且需要处理各种资源类型,那么Webpack可能是更合适的选择。如果你正在构建一个或组件,并且希望生成更小、更高效的输出文件,那么Rollup可能更适合你的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值