我正在使用Flow: Static type checking library来响应前端应用程序,对于从src目录进行的内部导入它会抛出“无法解析”:
Example in file at path: src/abc/def/ghi/hello.jsx, I am using the following import:
import words from '../words';
--> Throws error "Cannot resolve module ../words
words.js is in src/abc/def dir
已编辑: 安装流类型后,我的.flowconfig如下所示:
[ignore]
.*/node_modules/.*
.*/build/.*
.*/dist/.*
[include]
.*/src/.*
.*/test/.*
[libs]
flow-typed
[lints]
[options]
all=true
module.system.node.resolve_dirname=node_modules
module.system.node.resolve_dirname=src
[strict]
如何在.flowconfig文件中映射此类导入的流?
谢谢。
答案 0 :(得分:2)
要从./hello.jsx进入./def,您必须转到另一个目录
从“ ../../words”中导入单词;
答案 1 :(得分:1)
使其正常工作。
相对路径实际上不适用于Flow。
我们需要映射从项目根目录导入的内容,以便Flow理解。
我将导入更改为
import words from 'def/words';
将以下内容添加到您的.flowconfig文件中
module.name_mapper='^def\(.*\)$' -> '<PROJECT_ROOT>/src/abc/def/\1'
修复以上错误。
答案 2 :(得分:0)
/path/to/project/node_modules/.bin/flow stop
/path/to/project/yarn run flow (or your flow invoking script)
这为我解决了这个问题。
答案 3 :(得分:0)
在我的情况下,问题是我在webpack中使用了相对路径,例如
import CustomModule from 'pages/CustomModule'
因此,我可以像这样从src导入我的自定义模块(无需写入src /)
[options]
module.name_mapper='src' -> '<PROJECT_ROOT>/src'
但是flow现在并没有关于该webpack配置的信息,因此我必须在.flowconfig文件中添加下一个代码
True if all characters in the string are digits and there is at least one character,
更多信息