使用Flow与Lerna并创建React App

时间:2018-03-03 23:45:53

标签: javascript reactjs npm flowtype lerna

我有一个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)。为了解决这个问题,这是我尝试过的:

  • 在.flowconfig中的[options]下,添加: module.name_mapper='^app-a$' -> '<PROJECT_ROOT>/../app-a/src/index.js'其中index.js是App A的入口点。此解决方案来自:https://github.com/lerna/lerna/issues/891
  • 在.flowconfig中的[include]下,添加: ../app-a/src/index.js
  • 不是全局使用Flow,而是分别在每个应用程序中安装Flow。使用这些单独的Flow实例,我在App B中运行flow ls,发现app-bapp-a都是文件列表的一部分,但仍然出现相同的错误
  • 我一直在避免弹出我的Create React应用程序,因为我希望能够毫不费力地更新到更新的版本。因此,如果我不必使用流条类型插件
  • ,那将更加优化

0 个答案:

没有答案