跳到主要内容

命令行

我们一般在命令行中使用Rollup。你也可以提供一份配置文件(可要可不要)来简化命令行操作,同时还能启用Rollup的高级特性

配置文件(Configuration files)#

Rollup的配置文件是可选的,但是使用配置文件的作用很强大,而且很方便,因此我们推荐你使用

配置文件是一个ES6模块,它对外暴露一个对象,这个对象包含了一些Rollup需要的一些选项。通常,我们把这个配置文件叫做rollup.config.js,它通常位于项目的根目录

仔细查阅这个包办大量选项的清单,你可以根据你自己的需要把它配置到你的配置文件中

// rollup.config.jsexport default {  // 核心选项  input,     // 必须  external,  plugins,
  // 额外选项  onwarn,
  // danger zone  acorn,  context,  moduleContext,  legacy
  output: {  // 必须 (如果要输出多个,可以是一个数组)    // 核心选项    file,    // 必须    format,  // 必须    name,    globals,
    // 额外选项    paths,    banner,    footer,    intro,    outro,    sourcemap,    sourcemapFile,    interop,
    // 高危选项    exports,    amd,    indent    strict  },};

你必须使用配置文件才能执行以下操作:

如果你想使用Rollup的配置文件,记得在命令行里加上--config或者-c

# 默认使用rollup.config.js$ rollup --config
# 或者, 使用自定义的配置文件,这里使用my.config.js作为配置文件$ rollup --config my.config.js

命令行的参数(Command line flags)#

配置文件中的许多选项和命令行的参数是等价的。如果你使用这里的参数,那么将重写配置文件。想了解更多的话,仔细查阅这个包办大量选项的清单

-i, --input <filename>      要打包的文件(必须)-o, --file <output>         输出的文件 (如果没有这个参数,则直接输出到控制台)-f, --format <format>       输出的文件类型 (amd, cjs, esm, iife, umd)-e, --external <ids>        将模块ID的逗号分隔列表排除-g, --globals <pairs>       以`module ID:Global` 键值对的形式,用逗号分隔开                               任何定义在这里模块ID定义添加到外部依赖-n, --name <name>           生成UMD模块的名字-h, --help                  输出 help 信息-m, --sourcemap             生成 sourcemap (`-m inline` for inline map)--amd.id                    AMD模块的ID,默认是个匿名函数--amd.define                使用Function来代替`define`--no-strict                 在生成的包中省略`"use strict";`--no-conflict               对于UMD模块来说,给全局变量生成一个无冲突的方法--intro                     在打包好的文件的块的内部(wrapper内部)的最顶部插入一段内容--outro                     在打包好的文件的块的内部(wrapper内部)的最底部插入一段内容--banner                    在打包好的文件的块的外部(wrapper外部)的最顶部插入一段内容--footer                    在打包好的文件的块的外部(wrapper外部)的最底部插入一段内容--interop                   包含公共的模块(这个选项是默认添加的)

此外,还可以使用以下参数:

-h/--help#

打印帮助文档。

-v/--version#

打印已安装的Rollup版本号。

-w/--watch#

监听源文件是否有改动,如果有改动,重新打包

--silent#

不要将警告打印到控制台。