首页 > 解决方案 > 某些 Node.js 版本上的 TypeScript“找不到声明文件”错误

问题描述

我正在尝试"noImplicitAny": true为现有的 TypeScript 项目设置选项。在进行了所有必要的代码更改后,我们对节点 6 和 7 的依赖项之一出现以下错误:

Could not find a declaration file for module '@firebase/database'. '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.node.cjs.js' implicitly has an 'any' type.

这在 Node 8(本地和 Travis CI 上)上运行良好。

有人知道这是为什么吗?我可以理解这个错误,但不知道为什么它只发生在某些版本的 Node.js 上。

编辑

添加了该traceResolution选项,我确实看到了节点 7 和 8 之间的依赖关系如何解决的差异。

在节点 8 上:

'package.json' has 'typings' field 'dist/index.d.ts' that references '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.d.ts'.
File '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.d.ts' exist - use it as a name resolution result.
Resolving real path for '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.d.ts', result '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.d.ts'.
======== Module name '@firebase/database' was successfully resolved to '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.d.ts'. ========

在节点 7 上:

'package.json' has 'typings' field 'dist/index.d.ts' that references '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.d.ts'.
File '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.d.ts' does not exist.
Loading module as file / folder, candidate module location '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.d.ts', target file type 'TypeScript'.
File '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.d.ts.ts' does not exist.
...
File '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.node.cjs.js' exist - use it as a name resolution result.
Resolving real path for '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.node.cjs.js', result '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.node.cjs.js'.
======== Module name '@firebase/database' was successfully resolved to '/home/travis/build/firebase/firebase-admin-node/node_modules/@firebase/database/dist/index.node.cjs.js'. ========

标签: node.jstypescript

解决方案


推荐阅读