我用pnpm 起了一个多包项目,子包当中安装了一个 "query-string": "^8.1.0"。
但起项目的时候报错,query-string找不到它的依赖,下图是报错。
query-string 中也没有什么复杂逻辑,只有一个很普通的 require('decode-uri-component')。
奇怪的是,我使用 shamefully-hoist=true 就不报错了。
这是为什么?
我用pnpm 起了一个多包项目,子包当中安装了一个 "query-string": "^8.1.0"。
但起项目的时候报错,query-string找不到它的依赖,下图是报错。
query-string 中也没有什么复杂逻辑,只有一个很普通的 require('decode-uri-component')。
奇怪的是,我使用 shamefully-hoist=true 就不报错了。
这是为什么?
这个报错信息表明 'decode-uri-component'
无法在 'my-project/node_modules/query-string'
中解析,这通常是由于依赖关系问题引起的。
当你在一个多包项目中遇到这种问题时,有几种可能的原因:
query-string
包的版本可能不兼容你项目中其他包需要的 decode-uri-component
版本。pnpm
可能有一些特殊的特性或问题,导致包的解析出现问题。关于你提到的 shamefully-hoist=true
,这实际上是 pnpm
的一个选项,它会将所有依赖项提升到顶级包中,以避免潜在的共享依赖项问题。当你遇到这种问题时,它可能解决了包的解析顺序或共享依赖项的问题。
为了解决这个问题,你可以尝试以下方法:
query-string
版本与其他包兼容。可以尝试升级或降级 query-string
版本,看看是否解决了问题。pnpm install
命令来重新安装所有依赖项。require
语句,确保路径正确无误。pnpm
的文档或搜索相关的社区支持,看看是否有人遇到过类似的问题和解决方案。npm
或 yarn
,看看是否能够解决这个问题。希望这些建议能够帮助你解决问题!如果需要更多帮助或有其他问题,请随时提问。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
1.4k 阅读
1 回答6.4k 阅读✓ 已解决
1 回答1.9k 阅读✓ 已解决
1 回答2k 阅读
2.8k 阅读