大选项列表
#
核心功能(Core functionality)-i
/--input
)#
输入(input String
这个包的入口点 (例如:你的 main.js
或者 app.js
或者 index.js
)
-o
/--output.file
)#
文件(file String
要写入的文件。也可用于生成 sourcemaps,如果适用
-f
/--output.format
)#
格式(format String
生成包的格式。 下列之一:
amd
– 异步模块定义,用于像RequireJS这样的模块加载器cjs
– CommonJS,适用于 Node 和 Browserify/Webpackesm
– 将软件包保存为 ES 模块文件,在现代浏览器中可以通过<script type=module>
标签引入iife
– 一个自动执行的功能,适合作为<script>
标签。(如果要为应用程序创建一个捆绑包,您可能想要使用它,因为它会使文件大小变小。)umd
– 通用模块定义,以amd
,cjs
和iife
为一体system
- SystemJS 加载器格式
-n
/--name
)#
生成包名称(name String
变量名,代表你的 iife
/umd
包,同一页上的其他脚本可以访问它。
#
插件(plugins)插件对象 数组 Array
(或一个插件对象) – 有关详细信息请参阅 插件入门。记住要调用导入的插件函数(即 commonjs()
, 而不是 commonjs
).
-e
/--external
)#
外链(external 两者任一 Function
需要一个 id
并返回 true
(外部引用)或 false
(不是外部的引用),
或者 Array
应该保留在bundle的外部引用的模块ID。ID应该是:
- 外部依赖的名称
- 一个已被找到路径的ID(像文件的绝对路径)
当作为命令行参数给出时,它应该是以逗号分隔的ID列表:
-g
/--globals
)#
全局模块(globals Object
形式的 id: name
键值对,用于umd
/iife
包。例如:在这样的情况下...
...我们想告诉 Rollup jquery
模块的id等同于 $
变量:
或者,提供将外部模块ID转换为全局模块的功能。
当作为命令行参数给出时,它应该是一个逗号分隔的“id:name”键值对列表:
#
高级功能(Advanced functionality)#
路径(paths)Function
,它获取一个ID并返回一个路径,或者id:path
对的Object
。在提供的位置,这些路径将被用于生成的包而不是模块ID,从而允许您(例如)从CDN加载依赖关系:
#
banner/footerString
字符串以 前置/追加 到文件束(bundle)。(注意:“banner”和“footer”选项不会破坏sourcemaps)
#
intro/outroString
类似于 banner
和footer
,除了代码在内部任何特定格式的包装器(wrapper)
#
缓存(cache)Object
以前生成的包。使用它来加速后续的构建——Rollup只会重新分析已经更改的模块。
#
onwarnFunction
将拦截警告信息。如果没有提供,警告将被复制并打印到控制台。
警告是至少有一个code
和 message
属性的对象,这意味着您可以控制如何处理不同类型的警告:
许多警告也有一个loc
属性和一个frame
,你可以定位到警告的来源:
-m
/--sourcemap
#
sourcemap 如果 true
,将创建一个单独的sourcemap文件。如果 inline
,sourcemap将作为数据URI附加到生成的output
文件中。
#
sourcemapFileString
生成的包的位置。如果这是一个绝对路径,sourcemap中的所有源代码路径都将相对于它。 map.file
属性是sourcemapFile
的基本名称(basename),因为sourcemap的位置被假定为与bundle相邻
如果指定 output
,sourcemapFile
不是必需的,在这种情况下,将通过给bundle输出文件添加 “.map” 后缀来推断输出文件名。
#
interopBoolean
是否添加'interop块'。默认情况下(interop:true
),为了安全起见,如果需要区分默认和命名导出,则Rollup会将任何外部依赖项“default”导出到一个单独的变量。这通常只适用于您的外部依赖关系(例如与Babel)(如果您确定不需要它),则可以使用“interop:false”来节省几个字节。
#
危险区域(Danger zone)你可能不需要使用这些选项,除非你知道你在做什么!
#
treeshake是否应用tree-shaking。建议您省略此选项(默认为treeshake:true
),除非您发现由tree-shaking算法引起的bug,在这种情况下,请使用“treeshake:false”,一旦您提交了问题!
#
acorn任何应该传递给Acorn的选项,例如allowReserved:true
。
#
context默认情况下,模块的上下文 - 即顶级的this
的值为undefined
。在极少数情况下,您可能需要将其更改为其他内容,如 'window'
。
#
moduleContext和options.context
一样,但是每个模块可以是id: context
对的对象,也可以是id => context
函数。
#
legacy为了增加对诸如IE8之类的旧版环境的支持,通过剥离更多可能无法正常工作的现代化的代码,其代价是偏离ES6模块环境所需的精确规范。
#
exportsString
使用什么导出模式。默认为auto
,它根据entry
模块导出的内容猜测你的意图:
default
– 如果你使用export default ...
仅仅导出一个东西,那适合用这个named
– 如果你导出多个东西,适合用这个none
– 如果你不导出任何内容 (例如,你正在构建应用程序,而不是库),则适合用这个
default
和 named
之间的区别会影响其他人如何使用文件束(bundle)。如果您使用default
,则CommonJS用户可以执行此操作,例如
使用 named
,用户可以这样做:
有点波折就是如果你使用named
导出,但是同时也有一个default
导出,用户必须这样做才能使用默认的导出:
--amd.id
and --amd.define
#
amd Object
可以包含以下属性:
amd.id String
用于 AMD/UMD 软件包的ID:
amd.define String
要使用的函数名称,而不是 define
:
#
indentString
是要使用的缩进字符串,对于需要缩进代码的格式(amd
,iife
,umd
)。也可以是false
(无缩进)或true
(默认 - 自动缩进)
#
stricttrue
或false
(默认为true
) - 是否在生成的非ES6软件包的顶部包含'use strict'pragma。严格来说(geddit?),ES6模块始终都是严格模式,所以你应该没有很好的理由来禁用它。
#
Watch options这些选项仅在运行 Rollup 时使用 --watch
标志或使用 rollup.watch
时生效。
#
watch.chokidar一个 Boolean
值表示应该使用 chokidar 而不是内置的 fs.watch
,或者是一个传递给 chokidar 的选项对象。
如果你希望使用它,你必须单独安装chokidar。
#
watch.include限制文件监控至某些文件:
#
watch.exclude防止文件被监控: