# output.globals
类型: | { [id: string]: string }| ((id: string) => string) |
---|---|
CLI: | -g/--globals <external-id:variableName,another-external-id:anotherVariableName,...> |
该选项用于在 umd / iife bundle 中,使用 id: variableName 键值对指定外部依赖。例如,在这样的情况下:
import $ from 'jquery';
我们需要告诉 Rollup jquery 是外部依赖,jquery 模块的 ID 为全局变量 $:
// rollup.config.js
export default {
...,
external: ['jquery'],
output: {
format: 'iife',
name: 'MyBundle',
globals: {
jquery: '$'
}
}
};
/*
var MyBundle = (function ($) {
// 这里编辑代码
}($));
*/
或者,可以提供一个函数,将外部模块的 ID 变成一个全局变量名。
当作为命令行参数时,该选项的值应该是以逗号分隔的 id:variableName 键值对列表:
rollup -i src/main.js ... -g jquery:$,underscore:_
要告诉 Rollup 用全局变量替换本地文件时,请使用一个绝对路径的 ID。
// rollup.config.js
import { fileURLToPath } from 'node:url';
const externalId = fileURLToPath(
new URL(
'src/some-local-file-that-should-not-be-bundled.js',
import.meta.url
)
);
export default {
//...,
external: [externalId],
output: {
format: 'iife',
name: 'MyBundle',
globals: {
[externalId]: 'globalVariable'
}
}
};