我创建了一个React Native组件,该组件位于具有自己的package.json
文件的不同文件夹中,我想在另一个项目中使用它
MyComponent
位于Workspace/MyComponent
,位于package.json
"dependencies": {
"react-navigation": "^1.0.0-beta.11"
},
"peerDependencies": {
"react": "16.0.0-alpha.12",
"react-native": "0.45.1"
},
"devDependencies": {
"react": "16.0.0-alpha.12",
"react-native": "0.45.1"
}
我目前正在开发MyComponent
所以我在回购中运行了npm install
,有一个node_modules
文件夹。
我已将[{1}}与位于MyComponent
的{{1}}关联,并使用MyApp
虽然,当我运行Workspace/MyApp
并尝试使用npm link
时,它会抱怨重复声明,因为MyApp
同时位于MyComponent
和react
,他们是联系在一起的。
如果我从MyComponent
删除MyApp
文件夹,则node_modules
会抱怨MyComponent
未定义。
在ReactJS世界中,webpack例如允许使用首选的node_modules文件夹设置root。
react-navigation
我希望做类似的事情,因此我没有重复的模块,可以在react
本地调试module.exports = {
...
resolve: {
root: path.resolve(__dirname, 'node_modules'),
}
...
}
,而无需为每次更改重新安装MyComponent
。对我来说,实现这一目标的最佳方法是什么?
由于
答案 0 :(得分:0)
如果这最终将放在自己的repo中,然后将像任何其他组件一样安装,我可能只是在父项目的node_modules目录中构建它。这样可以防止您每次稍微改变都必须运行npm install
。
您还可以声明对本地文件的依赖关系,然后npm将它安装在node_modules中
"dependencies": {
"my-component": "file:app/components/my-component",
}
所以我有一个我在我的package.json文件中引用的项目中构建的组件。当我运行npm install
时,此组件安装在node_modules文件夹中。这可能有助于重复的库声明,但它不能解决重复使用npm install
更新:我刚刚了解到npm 5没有将文件复制到node_modules文件夹。它现在创建一个符号链接(基本上是指向真实目录的虚拟目录)到项目中的代码。
这意味着每次更改代码时都不必运行npm install
,因此它可能是您的最佳解决方案。
答案 1 :(得分:0)
我找到了问题的解决方案,并将其称为whackage
https://github.com/FormidableLabs/whackage