我正在使用启用了即插即用 (PnP) 的 Yarn v2。我想使用 Babel 转换我的一些依赖项的 js 文件,并使用 Rollup 捆绑它们。
但是,汇总发出以下警告并且输出不正确:
(!) Unresolved dependencies
https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
core-js-pure/features/url/index.js (imported by ../../.yarn/cache/systemjs-npm-6.10.1-130dfe2f84-0f27c4c97c.zip/node_modules/systemjs/dist/system.min.js)
我相信这是由以下行为引起的:
- Babel 注入
import flatmap from 'core-js-pure/features/array/flat-map.js'
。 - Rollup 无法解析导入,因为
core-js-pure
它不是包的列出依赖项,并将导入视为外部依赖项。
有没有什么方法可以在 Yarn PnP 模式下使用 Rollup+Babel 转换依赖项的 js 文件?
以下是我尝试过的一些解决方法:
- 设置
pnpMode
为loose
以便 Rollup 可以解析core-js-pure
,即使它不是文件所属包的列出依赖项。 - 添加一个带有钩子的自定义汇总插件
resolveId
以解析任何导入到core-js-pure
. 钩子将包含类似require.resolve(source)
. 这是有效的,因为我正在core-js-pure
我的代码中解析core-js-pure
列出的依赖项。