即使模块已安装且存在,Flow也无法解决它并引发错误。
见下文:
1)在bash中,我运行了flow
,它抛出未找到模块的错误
user@pc:~/code/project$ flow
Error ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ src/functionalities/Growth/index.js:3:25
Cannot resolve module react-redux.
1│ // @flow
2│ import React from "react"
3│ import { connect } from "react-redux"
4│
5│ type Props = {
6│ children: Function
Found 1 error
2)下面的命令检查目录是否存在
user@pc:~/code/project$ ls node_modules | grep react-redux
react-redux
我试图删除并重新安装node_modules
目录和yarn.lock
文件。
版本应匹配:
flow version
Flow, a static type checker for JavaScript, version 0.77.0
.flowconfig:
[version]
0.77.0
这很可能是Flow的错误,我也提交了问题。
答案 0 :(得分:30)
您有两个选择:
flow-typed
来找到依赖类型
为您归档/存根我使用选项2,但是很高兴知道下面发生了什么
在.flowconfig
的{{1}}下添加目录,
[libs]
现在,在您的项目根目录下创建该目录,并创建一个文件...
[libs]
/type-def-libs
...
,其中包含
/type-def-libs/react-redux
declare module 'react-redux' {
declare module.exports: any;
}
,请安装flow-typed
yarn add -D flow-typed
Flow正在为您要导入的模块寻找类型定义。因此,尽管模块确实存在于yarn flow-typed install
中,但是该模块没有将类型定义文件检入其代码中。
答案 1 :(得分:4)
我和你有同样的问题。
我使用flow-typed
我做了以下事情:
flow-typed
。示例:$ npm install -g flow-typed
$ flow-typed install react-redux@5.0.x
• Searching for 1 libdefs...
• flow-typed cache not found, fetching from GitHub...
• Installing 1 libDefs...
• react-redux_v5.x.x.js
└> ./flow-typed/npm/react-redux_v5.x.x.js
react-redux
如果安装成功,则应该看到此信息。$ npm run flow
再次运行流程。 react-redux
的错误将不再存在。答案 2 :(得分:0)
检查您的.flowconfig
并删除<PROJECT_ROOT>/node_modules/.*
字段下的[ignore]
(如果有的话)。
感谢@meloseven解决了这个问题here。
答案 3 :(得分:0)
我检查了package.json
文件,发现react-redux
丢失了。我将其手动添加到依赖项"react-redux": "x.x.x"
中,然后运行npm install
。请注意,版本号应与其他模块兼容。
答案 4 :(得分:0)
请确保您在.flowconfig中的'ignore'下提供路径,如下所示:
[ignore]
.*/node_modules/react-native/Libraries/.*
不是这样的:
.*/node_modules/react-native/Libraries/Components
.*/node_modules/react-native/Libraries/Core
....