Node.js 流量+;“网络风暴”;无法解析模块";
我有一个现有的项目,我们将Flow的类型系统集成到react端。该项目是以电子为基础的,因此,根据定义,是单一回购。为了识别导入语句,我们遇到了各种各样的问题 节点_模块导入将失败:Node.js 流量+;“网络风暴”;无法解析模块";,node.js,reactjs,types,Node.js,Reactjs,Types,我有一个现有的项目,我们将Flow的类型系统集成到react端。该项目是以电子为基础的,因此,根据定义,是单一回购。为了识别导入语句,我们遇到了各种各样的问题 节点_模块导入将失败: import _ from 'lodash'; // Flow: Cannot resolve module lodash 更重要的是,我们需要相对于项目的绝对路径: import {MyComponent} from 'src/component/myComponent'; // Flow: Cannot r
import _ from 'lodash'; // Flow: Cannot resolve module lodash
更重要的是,我们需要相对于项目的绝对路径:
import {MyComponent} from 'src/component/myComponent';
// Flow: Cannot resolve module src...
找到一个解决方案需要一点挖掘,而且文档在某些方面有点缺乏,所以我想列出一个编译后的列表,列出实际工作的内容。TL;博士
在webstorm上设置流,这样它会给您模块错误
全局设置flow,将webstorm的js设置指向flow,并将其指向flow bin的全局副本(甚至不是exe,只是dir)
将以下选项添加到.flowconfig:
[options]
module.name_mapper='^src\/\(.*\)$' -> '<PROJECT_ROOT>/src/\1'
module.system=haste
再次检查它是否为您提供了当前版本的flow bin
拒绝在0.75.0或更早版本上工作
设置Webstorm的流可执行文件
- 在Webstorm上:文件>设置>语言和框架>Javascript
- 选择Flow作为JavaScript语言版本
- 查找包管理器(纱线或npm)存储全局文件的位置
C:/Users/[your username]/AppData/Local/Yarn/Cache/v1/npm-flow-bin-[whatever]/
- 在Webstorm的JavaScript设置中,将流包或可执行文件指向我们刚刚找到的全局流路径
- 申请,好吗
- 我有一个根git项目,包含两个部分:react和electron。Flow根据您放置.flowconfig文件的位置进行操作
- 如果它包含“all=true”,请删除该行并将/@Flow添加到您希望Flow检查的文件中(否则它将开始索引所有节点_模块)
- 将.flowconfig放在您的react目录中
- 享受所有“流程:无法导入模块”的曲折命运线
[ignore]
.*/build/.*
[include]
[libs]
[lints]
[options]
module.name_mapper='^src\/\(.*\)$' -> '<PROJECT_ROOT>/src/\1'
module.system=haste
[strict]
haste模块系统步骤很重要,因为否则它不知道“lodash”的意思是“/node\u modules/lodash”。告诉它使用haste意味着它会正确地找到您的导入语句。您确定在这里使用haste是个好主意吗?从外观上看,我一直认为它仍然存在于流中是出于遗留原因,为了获得lodash和其他库的正确类型,我建议在类型化的流上使用Correct,但这不是我正在解决的问题。我的问题是代码文件中的模块导入行中断,因为流不知道在哪里查找,而不是断开的类型定义。规范的resolve\u dirname不能解决导入问题。
[ignore]
.*/build/.*
[include]
[libs]
[lints]
[options]
module.name_mapper='^src\/\(.*\)$' -> '<PROJECT_ROOT>/src/\1'
module.system=haste
[strict]
module.name_mapper='^src\/\(.*\)$' -> '<PROJECT_ROOT>/src/\1'
module.system=haste