Rollup使用

2021-01-24  本文已影响0人  翔子丶

Rollup同样是一款ES Module打包器,从作用来看,Rollup与Webpack很相似,但Rollup更为小巧,仅仅是一款ESM打包器;比如Rollup中不不支持类似的HMR这种高级特性

Rollup是为了提供一个充分利用ESM各项特性的高效(结构比较扁平,性能比较出众的类库)打包器

Rollup快速上手
  1. 安装rollup模块yarn add rollup --dev

  2. 在node_modules/.bin目录就会有rollup.cmd,通过yarn rollup就可以直接使用

  3. yarn rollup .\src\index.js --format iife --file dist/bundle.js指定打包格式为iife,并指定打包文件

  4. 打包结束,输出打包结果到bundle.js中

    (function () {
      'use strict';
    
      const log = msg => {
        console.log('---------- INFO ----------');
        console.log(msg);
        console.log('--------------------------');
      };
    
      var messages = {
        hi: 'Hey Guys, I am zce~'
      };
    
      // 导入模块成员
    
      // 使用模块成员
      const msg = messages.hi;
    
      log(msg);
    
    }());
    

    可以看出,代码中未使用的代码会被自动清除,因为Rollup默认开启tree-shaking,如果用webpack,虽然可以实现tree-shaking,但需要配置并且打包的代码非常臃肿

Rollup配置文件

项目根目录添加rollup.config.js,如下

export default {
  input: 'src/index.js',
  output: {
    file: 'dist/bundle.js', // rollup支持的多种输出格式(有amd,cjs, es, iife 和 umd)
    format: 'iife',
  },
}

可以通过yarn rollup --config直接运行默认配置文件,也可以指定文件yarn rollup --config rollup.config.js,这样可以针对不同的环境使用不同的配置

Rollup使用插件

Rollup支持使用插件的方式,并不像webpack中分为loader、plugins和minimize三种扩展方式,插件时Rollip唯一扩展途径

Rollup与Webpack

如果正在开发应用程序,需要引用第三方模块、需要使用HMR提升开发效率,应用大时需要使用分包,这些需求Rollup在满足上都会有欠缺;而去过正在开发一个框架或类库,很少依赖第三方模块,像React/Vue都在使用Rollup作为模块打包器

Webpack大而全,Rollup小而美

Parcel 零配置的前端应用打包器
上一篇下一篇

猜你喜欢

热点阅读