反应:流程:导入本地js文件-无法解决问题模块

时间:2018-10-01 22:34:38

标签: javascript reactjs react-native flowtype flow-typed

我正在使用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文件中映射此类导入的流?

谢谢。

4 个答案:

答案 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, 

更多信息

about flow options

about name_mapper