如何观看 react-native node_modules 变化

How to watch react-native node_modules changes

当我 运行 react-native startnpm start 时,打包程序启动并提示 Looking for JS files in /Users/map/repos/myrepo/

我启用了热重载。当我更改位于 /Users/map/repos/myrepo/node_modules/react-native/ 内的文件时,似乎检测到更改,但是如果我在第三方存储库中编辑文件,如 /Users/map/repos/myrepo/node_modules/react-native-menu/ 看起来 watchman 没有检测到更改。

我刚刚将项目中的 React Native 升级到 0.39,我认为这不是以前的默认行为。我已经在 react-packager/src/node-haste/index.js 中设置了一些日志记录,react-native-menu 文件似乎包含在 hasteFSFiles 中,但是 change 事件没有被触发。

我已经尝试删除 node_modules 并重新安装它,清理 Watchman 状态和其他都没有成功。

好的,看起来他们在 0.39 版本中重新编写了 React Native 打包程序,尽管这个错误在 v0.40 中仍然存在。在正式修复之前,如果你想检测 node_modules 中库的更改,你需要编辑 node_modules/react-native/packager/defaults.js 并将你的项目名称添加到 providesNodeModules,如下所示:

exports.providesModuleNodeModules = [ 'react-native', 'react-native-windows', 'react-native-menu', ];

可在此处找到已报告的问题: https://github.com/facebook/react-native/issues/11301

另一种解决方案是使用附加参数启动 React Native 打包程序

npm run start -- --providesModuleNodeModules react-native,{any_node_module}

适用于我的 RN v0.42.0