# 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'
		}
	}
};
Last Updated: 6/14/2023, 8:56:23 AM