重命名后无法导入JavaScript中的类

ghg1uchk  于 2024-01-05  发布在  Java
关注(0)|答案(1)|浏览(134)

我有一个本地库,它导出了一个名为Foo的类,如果有关系的话,这个库被内置到一个带有nx的模块中。
类的文件看起来像这样(简化)

export class Foo {}

字符串
index.js看起来像这样(简化)

export * from /path/to/foo/file


在我的项目中,

import { Foo } from FooLib;


所有这些工作都很完美,没有任何问题
然而,如果我在两个文件中重命名类,

export class Bar {}
import { Bar } from FooLib;

这导致节点抱怨

Error: export 'Bar' (imported as 'Bar') was not found in 'FooLib' (possible exports: Foo)


现在这看起来很可疑,就像我没有重建库或忘记安装新版本,但vscode使用的lsp识别出了更改,我可以转到重命名的类的定义,这将导致node_modules中的相应文件。
我也可以尝试像以前一样包含Foo,但也失败了。

import { Foo } from 'FooLib';


相应的错误,音调相似,但格式不同

Module '"FooLib"' has no exported member 'Foo'.


将类重命名为Foo解决了所有这些问题,这意味着我可以再次以旧名称导入类,但我不能重命名该类并使其工作
我试

  • 完全删除项目的node_modules(并重新安装新的FooLib)
  • 重新启动

我是不是漏掉了什么明显的东西?

0mkxixxg

0mkxixxg1#

确保在重命名类后执行干净的构建。有时,以前构建的残留工件可能会导致意外问题。您可以尝试运行npm clean等命令,或在重新安装和重建之前手动删除node_modules和dist目录。

相关问题