autoExternal 是 bundle 模式的特定配置。在 bundleless 模式(将 lib.bundle 设置为 false)下不会生效,因为 bundleless 模式下依赖不会被打包。
type AutoExternal =
| boolean
| {
dependencies?: boolean;
optionalDependencies?: boolean;
devDependencies?: boolean;
peerDependencies?: boolean;
};--auto-external / --no-auto-external是否自动对不同依赖类型的依赖进行外部化处理,不将其打包。
booleantrue是否自动外部化 dependencies 类型的依赖。
booleantrue是否自动外部化 optionalDependencies 类型的依赖。
booleantrue是否自动外部化 peerDependencies 类型的依赖。
booleanfalse是否自动外部化 devDependencies 类型的依赖。
autoExternal 的默认值为 true,意味着以下依赖类型不会被打包:
dependenciesoptionalDependenciespeerDependencies而以下依赖类型会被打包:
devDependencies此配置等同于下面的对象类型:
export default {
lib: [
{
format: 'esm',
autoExternal: {
dependencies: true,
optionalDependencies: true,
peerDependencies: true,
devDependencies: false,
},
},
],
};要禁用特定类型依赖的处理,你可以将 autoExternal 配置为一个对象,如下所示:
export default {
lib: [
{
format: 'esm',
autoExternal: {
dependencies: false,
peerDependencies: false,
},
},
],
};如果你想禁用默认行为,可以将 autoExternal 设置为 false:
export default {
lib: [
{
format: 'esm',
autoExternal: false,
},
],
};关于第三方依赖处理的更多细节,请参考 处理第三方依赖。