我正在为本机开发一个npm包,并希望将yarn link
(或npm link
)放入我的测试应用程序仓库进行测试。该程序包具有react
和react-native
的对等依赖项。当我尝试运行测试项目时,收到一条错误消息:
Unable to resolve module `react` from `Users/username/Documents/module`
由于react
是对等依赖,因此它安装在测试项目中,而不是模块中。所以这是有道理的。但是做研究似乎--preserve-symlinks
会通过搜索module
测试项目node_modules
文件夹的依赖关系来解决我的问题,而不是module
&# 39; S。但据我所知,无法使用react-native start
标志运行--preserve-symlinks
。
我尝试了以下两种变体:
$ react-native start --preserve-symlinks
$ react-native --preserve-symlinks start
但两人都收到了消息:
`error: unknown option `--preserve-symlinks'`
我做错了吗?有没有办法在某种情况下以某种方式全局启用--preserve-symlinks
?
my-module
' package.json
:
{
"name": "my-module",
"version": "0.1.0",
"peerDependencies": {
"react-native": "*",
"react": "*"
}
}
test-project
' package.json
:
{
"name": "my-module",
"version": "0.1.0",
"dependencies": {
"react-native": "*",
"react": "*",
"my-module": "*"
}
}
连接我跑的两个:
$ cd my-module
$ yarn link
$ cd ../test-project
$ yarn link my-module
我发现将react
添加到devDependencies
的{{1}}可以解决错误,但有明显的警告,即会加载多个react副本。奇怪的是,my-module
不会导致问题,并且似乎可以正常加载为react-native
。但是,此解决方案不起作用,因为我使用的React的某些功能要求只有一个副本。