Eslint flowtype将单个包导入标记为未找到

Eslint flowtype将单个包导入标记为未找到,eslint,flowtype,Eslint,Flowtype,我试图开始使用Flowtype,但在导入子包时,例如 import isArray from 'lodash/isArray'; 我的eslint正在抱怨找不到所需的模块 我已经使用flow-typed install安装了所有可以找到的lib-def 有没有办法解决这个问题 谢谢 首先,流不是ESLint。它们是两个独立的工具流类型安装通常不会影响ESLint错误 根据你问题中的信息,我认为有两种可能性: 您尚未实际安装lodash。确保它作为依赖项列在您的包.json中,然后运行npm安装

我试图开始使用Flowtype,但在导入子包时,例如

import isArray from 'lodash/isArray';
我的eslint正在抱怨找不到所需的模块

我已经使用
flow-typed install
安装了所有可以找到的lib-def

有没有办法解决这个问题


谢谢

首先,流不是ESLint。它们是两个独立的工具<代码>流类型安装通常不会影响ESLint错误

根据你问题中的信息,我认为有两种可能性:

  • 您尚未实际安装
    lodash
    。确保它作为依赖项列在您的
    包.json中,然后运行
    npm安装
  • 您通过ESLint以某种方式传递了流错误(尽管我不建议这样做),并且
    lodash的
    流类型的libdef存在问题。在这种情况下,您可能需要弄清楚如何调整libdef以允许这样做

  • Flow将lodash/isArray处理为自己的模块,因此需要告知该模块的导出内容

    修改
    lodash
    libdef以导出
    lodash/isArray

    您可以这样做(我提取了libdef的一个子集,并向您展示了需要更改的内容)

    声明模块'lodash/isArray'{
    声明函数isArray(值:any):bool;
    declare module.exports:isArray的类型
    }
    声明模块“lodash”{
    声明类别Lodash{
    isArray:$出口
    }
    申报var出口:Lodash;
    }
    
    如果你有任何问题,请告诉我


    如果人们按照您的方式加载lodash模块是正常的,那么应该更新整个libdef以支持此用例。

    谢谢Nat。1) lodash确实与
    npm i-S
    2)有关,因此流类型的libdef和lodash之间存在一个问题,这是这个问题的核心,如何“调整libdef以允许此操作”。当您从“lodash”导入{isArray}
    时,它是否有效?看起来libdef流没有处理模块名“lodash/isArray”@LewisChung很抱歉延迟,是的,它可以工作
    declare module 'lodash/isArray' {
      declare function isArray(value: any): bool;
    
      declare module.exports: typeof isArray
    }
    
    declare module 'lodash' {
      declare class Lodash {
        isArray: $Exports<'lodash/isArray'>
      }
    
      declare var exports: Lodash;
    }