代码案例说明

demo01 单文件编译

rollup 入口文件 --file 输出文件 --format 输出格式

常用输出格式分为三种:iife cjs umd,表示浏览器环境,node 环境,两者都支持的环境

全部格式:"amd", "cjs", "system", "es", "iife" or "umd".

第一个测试文件中,包括了这三个打包的方式,可以查看具体的打包结果

demo03 多文件编译

多入口多出口文件的配置

export default [
  {
    input: './index2.js',
    output: {
      file: 'bundle.js',
      format: 'cjs'
    }
  },
  {
    input: './index.js',
    output: [
      {
        file: 'bundle-cjs.js',
        format: 'cjs'
      },
      {
        file: 'bundle-es.js',
        format: 'es'
      },
      {
        file: 'bundle-umd.js',
        format: 'umd'
      },
      {
        file: 'bundle-iime.js',
        format: 'iife'
      },
    ]
  },
];

demo 04 插件

插件的配置:先安装,然后在配置文件中导入和使用

全部插件介绍:

https://rollupjs.org/guide/en/#plugins

https://rollupjs.org/guide/en/#plugin-development

npm install --save-dev @rollup/plugin-json @rollup/plugin-node-resolve @rollup/plugin-commonjs
npm install --save-dev rollup-plugin-terser

@rollup/plugin-json

A Rollup plugin which Converts .json files to ES6 modules.

将 .json 文件转换为 ES6 模块的 Rollup 插件。

允许导入 json 文件

@rollup/plugin-node-resolve

A Rollup plugin which locates modules using the Node resolution algorithm, for using third party modules in node_modules

一个使用 Node 解析算法定位模块的 Rollup 插件,用于在 node_modules 中使用第三方模块

@rollup/plugin-commonjs

A Rollup plugin to convert CommonJS modules to ES6, so they can be included in a Rollup bundle

将 CommonJS 模块转换为 ES6 的 Rollup 插件,因此它们可以包含在 Rollup 包中

rollup-plugin-terser

Rollup plugin to minify generated es bundle. Uses terser under the hood.

用于缩小生成的 es 包的汇总插件。 在hook下使用更简洁。

import { terser } from "rollup-plugin-terser";
 
export default {
  input: "index.js",
  output: [
    { file: "lib.js", format: "cjs" },
    { file: "lib.min.js", format: "cjs", plugins: [terser()] },
    { file: "lib.esm.js", format: "esm" },
  ],
};

其他选项

其他的选项参考:https://www.rollupjs.com/guide/big-list-of-options