跳到主要内容

rollup 打包时的 external 配置

versionNPM Last UpdateMonthly downloadsTotal downloads

源码参看bug 🙋‍♂️ 提交

在使用 rollup 打包时,有时候会出现意想不到的事,譬如:本该出现在 dependencies的包出现在了devDependencies而导致库包线上报错,而且出了好几次这种尴尬的事,所以,写个包,机器有时候确实在某些方面比人强。

安装

npm install  @qqi/rollup-external --save-dev

使用

rollup.config.js 文件中配置:

.... 其他引用
import { external } from '@qqi/rollup-external';
.... 其他代码逻辑

export default {
... 其他配置,
external: external({
// 默认排除 package.json 中 dependencies 的依赖
// 排除 `node:`、`a-`、`color-pen` 、`@qqi`开头的依赖
exclude: ["node:", "a-" ,"color-pen", "@qqi/"],
// 忽略 `node:` 开头的包在 package.json 中未声明的 dependencies 的依赖
// 未配置改项,若项目中包含 `node:`
ignore: ["node:"],
// 一定要包含的依赖,将被打包入打包文件夹内
// 或是使用 `src/` 等路径,则报错 “依赖未被排除,打包关闭”
include: ['@qqi/copy-text','src/utils', 'src/dog']
}),
... 其他配置,

}

  • 默认读取 package.json 中的 dependenciespeerDependencies 的依赖项作为 exclude 的值,即改值一般无需配置
  • include 使用的全量对比,且优先级要远远高于 excludeignore 的配置,若在 dependencies 中配置了某依赖却又想将该依赖包含在打包文件内时可使用 include(但是需注意包会包含于 'node_modules' 文件夹下,保证 files 字段包含该项)
  • ignore 用于忽略那些不包含于 'package.json' 的 dependencies 中却需要被排除的依赖,如 node:src/ 等路径的依赖。校验时以输入的字符串的 startWith 判断
  • 可直接不使用参数,如果仅是想排除 'package.json' 文件中 dependencies 配置依赖 (怎么感觉有一股翻译腔)