rollup 打包时的 external 配置
在使用 rollup 打包时,有时候会出现意想不到的事,譬如:本该出现在 dependencies
的包出现在了devDependencies
而导致库包线上报错,而且出了好几次这种尴尬的事,所以,写个包,机器有时候确实在某些方面比人强。
安装
- npm
- yarn
- pnpm
npm install @qqi/rollup-external --save-dev
yarn add @qqi/rollup-external --dev
pnpm add @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
中的dependencies
和peerDependencies
的依赖项作为exclude
的值,即改值一般无需配置 include
使用的全量对比,且优先级要远远高于exclude
和ignore
的配置,若在dependencies
中配置了某依赖却又想将该依赖包含在打包文件内时可使用include
(但是需注意包会包含于 'node_modules' 文件夹下,保证 files 字段包含该项)ignore
用于忽略那些不包含于 'package.json' 的dependencies
中却需要被排除的依赖,如node:
、src/
等路径的依赖。校验时以输入的字符串的startWith
判断- 可直接不使用参数,如果仅是想排除 'package.json' 文件中
dependencies
配置依赖 (怎么感觉有一股翻译腔)