我从Expo创建了一个React Native项目。然后我想添加Flow。我注意到在我的node_modules/react-native
文件夹中有一个.flowconfig,所以我将其复制到我的项目的根目录。运行flow
后,我从node_modules/exponent
中的文件收到了一些警告,因此我为整个文件夹添加了一个忽略。之后,我在运行flow
时仍会遇到很多错误。以下是一些:
node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:227
227: /* $FlowFixMe */
^^^^^^^^^^^^^^^^ Error suppressing comment. Unused suppression
node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:1120
1120: if (__DEV__) {
^^^^^^^ identifier `__DEV__`. Could not resolve name
node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:2162
2162: if (__DEV__) {
^^^^^^^ identifier `__DEV__`. Could not resolve name
答案 0 :(得分:2)
您可以在[options]
部分的 .flowconfig 文件中取消错误,如下所示:
[options]
suppress_type=$FlowFixMe
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(3[0-8]\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
然后,在[libs]
部分中,您应该指出所谓的库定义文件,例如:
[libs]
./libdefs.js
在 libdefs.js 中只需声明:
declare var __DEV__:string;
这些更改应解决您的错误。参见:
https://flow.org/en/docs/config/options/#toc-suppress-comment-regex和
答案 1 :(得分:0)
看起来它可能是对该发行版本的流类型的疏忽。
所有这些错误看起来都是无害的,所以你可以忽略它。如果您绝对无法忽略它,请更新到更高版本的React Native,该版本已锁定到不同版本的Flow?我使用React Native @ 0.42和Flow @ 0.38亲自(没有错误)获得了良好的结果。
答案 2 :(得分:0)
找到此issue,建议更新flowconfig以使用latest version from create-react-native-app。似乎对我有用。