Rollup了解(一)

Rollup

Rollup 是什么

Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序。
这些标准都包含在 JavaScript 的 ES6 版本中,而不是以前的特殊解决方案,如 CommonJS 和 AMD。ES6 模块可以使你自由、无缝地使用你最喜爱的 library 中那些最有用独立函数,而你的项目不必携带其他未使用的代码。

且Rollup比Webpack更早地使用了Tree Shaking。

Rollup 与Webpack

Rollup 与 Webpack 在以前是可以称为“库开发用Rollup,应用开发用Webpack”,
鉴于打包工具之间功能插件越来越少,Rollup也支持了HMR,Webpack也支持Tree Shaking.

区别

特性:
rollup 所有资源放同一个地方,一次性加载,利用 tree-shake特性来 剔除未使用的代码,减少冗余
webpack 拆分代码、按需加载 webpack2已经逐渐支持tree-shake
rollup:
1.打包你的 js 文件的时候如果发现你的无用变量,会将其删掉。
2.可以将你的 js 中的代码,编译成你想要的格式:IFE, AMD, CJS, UMD, ESM等
webpack:
1.代码拆分
2.静态资源导入(如 js、css、图片、字体等)
拥有如此强大的功能,所以 webpack 在进行资源打包的时候,就会产生很多冗余的代码。

基本使用

全局安装

npm install -g rollup

创建工程

mkdir -p my-rollup-project/src
cd my-rollup-project

工程结构

├── dist
│ └── bundle.js
├── package.json
├── readme.md
├── rollup.config.js
└── src
└── index.js

rollup.config.js

export default {
  input: ["./src/index.js"],
  output: {
    file: "./dist/bundle.js",
    format: "umd",
    name: "experience",
  },
};

rollup常用插件

  • resolve 插件
  • external 属性
  • commonjs 插件
  • babel
  • json

参考

rollup.js 中文文档

一文带你快速上手Rollup

Why I use Rollup, and not Webpack

rollup和webpack

rollup-starter-app

rollup-starter-lib

你可能感兴趣的:(Rollup了解(一))