使用@rollup/plugin-commonjs时不想把某一个包打包进去,应该怎么配置
时间: 2023-08-31 14:20:25 浏览: 304
rollup-plugin-commonjs:此模块已移动,现在可通过@ rollupplugin-commonjs https获得
### 回答1:
你可以在 `rollup.config.js` 中的 `input` 选项中排除掉那个包,例如:
```
input: ['main.js', '!excluded-package.js']
```
你也可以在 `rollup.config.js` 中的 `external` 选项中指定那个包是外部依赖,例如:
```
external: ['excluded-package']
```
这样 Rollup 就不会把那个包打包进去了。
注意:`external` 选项的值可以是一个函数,这个函数接收一个参数表示模块的名字,返回一个布尔值表示这个模块是否为外部依赖。这样你就可以动态地控制哪些模块是外部依赖,哪些模块不是。
例如:
```
external: (id) => id.startsWith('lodash/')
```
这样配置后,所有以 `lodash/` 开头的包都不会被打包进去。
### 回答2:
当使用@rollup/plugin-commonjs插件时,如果不希望将某个包打包进最终输出的文件中,可以通过以下方式进行配置:
1. 在rollup配置文件(通常为rollup.config.js)中,找到对@rollup/plugin-commonjs的相关配置部分。
2. 在该配置部分中,寻找到"exclude"或"include"选项。
- 如果存在"exclude"选项,可以将要排除的包的路径添加到该选项中。可以使用glob模式匹配,以指定一组要进行排除的包。例如,如果要排除lodash包,可以配置为:
```javascript
commonjs({
exclude: 'node_modules/lodash/**'
})
```
- 如果不存在"exclude"选项但存在"include"选项,可以将要包含的需要打包的包的路径添加到该选项中。这样,仅添加到"include"选项中的包会被打包,其他包则会被排除。例如,如果只想打包axios包,可以配置为:
```javascript
commonjs({
include: 'node_modules/axios/**'
})
```
- 如果既不存在"exclude"选项,也不存在"include"选项,则需要手动添加一个"exclude"选项,并以数组形式提供要排除的包的路径。
```javascript
commonjs({
exclude: ['node_modules/package-to-exclude', 'node_modules/another-package-to-exclude']
})
```
请确保包的路径是正确的,并符合实际项目中node_modules文件夹中包的布局。
通过上述配置,可以成功地将不想打包进最终输出文件中的包从@rollup/plugin-commonjs的处理范围中排除掉。
阅读全文