typescript - 使用 yarn 链接使用具有 peerDependencies 的本地 npm 包时出现问题

标签 typescript yarnpkg rollupjs npm-link peer-dependencies

尝试使用 styled-components 开发 React 组件库时,我遇到了以下问题.

为了本示例的目的,假设我们有两个存储库,appcorecore将被 app 消耗.

目前,core用 TypeScript 编写并使用 tsc 构建.

为了快速迭代,我尝试使用 yarn link链接core进入app .

这很适合制作 app查找 core ...我面临的问题是当 core 的编译 TypeScript 代码时试图要求一个包裹,比如说 styled-components , 它试图在 node_modules 中找到这个包的 core (不是 app )。因为我有 styled-components作为 peerDependency 和 devDependency,它能够在 core 中找到它的 node_modules ,但这不是我想要发生的。我希望它使用 styled-componentsapp .

yarn link 的一种替代方法我尝试过添加 core 的依赖项至 app通过file:/path .这似乎按预期工作,但引入了新问题。我怎样才能在 package.json 中找到我的开发机器的路径?仅用于本地开发(无需不断来回切换)?此外,似乎在 core 中进行了任何更新要求从 app 中删除包,并在重新添加之前清除 yarn 的缓存。

有没有更简单的方法可以让这个场景发挥作用?我刚刚开始将 Rollup 或 Webpack 视为解决方案,但不确定这是否是正确的方向。

最佳答案

这不是 yarn link 的解决方案。

但对于使用 yarnnpm

管理本地存储库有问题的人来说,这是一个解决方案

只需使用 yalc 来管理您的本地包,而不是 yarn linkyarn add link:...

关于typescript - 使用 yarn 链接使用具有 peerDependencies 的本地 npm 包时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54991787/

相关文章:

Angular/ typescript : way to create table from array

javascript - rollupjs - babelHelpers 对象未创建

javascript - 如何防止测试被汇总捆绑?

javascript - 用 Jest 模拟条件 window.open 函数调用

angular - TypeScript 函数返回未定义

javascript - 地铁 bundler : Cannot read properties of undefined (reading 'transformFile' )

javascript - 无法安装 create-react-app

bash - 通过 Bash shell WSL1 安装 Yarn

svelte - 在生产环境中隐藏来自开发者工具的原始 .svelte 文件

javascript - 返回空洞的 promise