我有一个本地库,它导出了一个名为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)
- 重新启动
我是不是漏掉了什么明显的东西?
1条答案
按热度按时间0mkxixxg1#
确保在重命名类后执行干净的构建。有时,以前构建的残留工件可能会导致意外问题。您可以尝试运行npm clean等命令,或在重新安装和重建之前手动删除node_modules和dist目录。