我已经在Visual Studio Code中启动了一个新的 TypeScript 项目,我想将它与 Cloud Functions for Firebase 服务一起使用,但我遇到了大量编译器错误。我已经四处寻找并尝试解决它们,因为它们似乎正在破坏 Intelisense 以及在我自己编写的任何 TypeScript 代码中添加错误。
仅安装工具后,我就可以在新项目中重现这些问题,但我现在真的很困惑问题是什么。
我已经firebase-tools
全局安装了。
我从一个空文件夹开始,首先我创建一个tsconfig.json
文件。
{
"compilerOptions": {
"module": "commonjs",
"sourceMap": true
},
"exclude": [
"node_modules"
]
}
接下来我添加tasks.json
文件。
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"args": ["-p", "."],
"showOutput": "silent",
"problemMatcher": "$tsc"
}
然后我运行firebase init functions
以初始化项目以使用函数 API。
通过运行此步骤安装的打包文件设置在一个packages.json
文件中。
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"dependencies": {
"firebase-admin": "~4.1.2",
"firebase-functions": "^0.5"
},
"private": true
}
此时,当我尝试构建项目并让它运行时,tsc
我会遇到一堆错误,例如重复标识符,并且接口Server
不能同时扩展类型“服务器”和“事件发射器”。
在对谷歌嗤之以鼻一段时间后,我无法弄清楚问题是什么。我对 TypeScript 比较陌生,我不是 100% 熟悉一切是什么,一切都在哪里,但看起来存在冲突,因为@types
和typings
文件导出的类型相互混淆或全局安装的东西。
我试过在tsconfig.json
排除typings
目录中使用 exclude 属性,但这似乎不起作用。
我发现的最接近我的问题的票是在 GitHub 上作为 TypeScript 项目的一部分,但我不确定它是哪个模块或指向何处。
任何帮助将不胜感激,我不确定我对 TypeScript 不熟悉是问题(即配置问题)还是错误或类似问题。
编辑: 我已将 nodejs 和 npm 分别更新到版本 7.10.0 和 4.2.0。我删除了这些软件包并重新安装了它们,现在我遇到了一组稍微不同的错误。该node_modules
目录似乎已被展平。