我有一个Lerna软件包,其中包含使用Create React App创建的两个不同的React应用程序(我们称之为App A和App B)。其中一个应用程序导入另一个。我想为这两个应用添加Flow支持。为此,我在全球范围内安装了Flow。
当单独使用每个应用程序时,流程功能正常。但是,当我将其中一个应用程序导入另一个应用程序时,我在App B中收到以下错误:
Module parse failed: Unexpected token (8:5)
You may need an appropriate loader to handle this file type.
import { AppA } from 'app-a';
type Options = {
key: string,
onSuccess: function,
我解释这个的方式是Flow没有处理App A,因为它是App B中的符号链接依赖(由于Lerna)。为了解决这个问题,这是我尝试过的:
module.name_mapper='^app-a$' -> '<PROJECT_ROOT>/../app-a/src/index.js'
其中index.js
是App A的入口点。此解决方案来自:https://github.com/lerna/lerna/issues/891 ../app-a/src/index.js
flow ls
,发现app-b
和app-a
都是文件列表的一部分,但仍然出现相同的错误