node.js - Firebase 函数项目上的 VS 代码“找不到模块”错误
问题描述
我在 Visual Studio 代码和 index.ts 文件中设置了一个 firebase 函数项目,我无法让它识别导入的模块。自动完成显示模块存在,但是当我导入它们时,我收到错误“找不到模块”。
但是项目编译并通过了 lint 检查。我只是不能使用智能感知。我测试了以下解决方案,但无法正常工作;
- 删除 node-modules 文件夹,然后执行
npm install
. - 在新目录上创建新的 firebase 函数项目。
- 卸载并重新安装 vs-code。(删除 AppData 中的每个属性)。
- 全局重新安装打字稿。
- 删除扩展。
- 在 MacOS 而不是 Windows 10 上测试
截图
错误
文件夹结构
tsconfig.json
{ "compilerOptions": { "module": "commonjs", "noImplicitReturns": true, "noUnusedLocals": true, "outDir": "lib", "sourceMap": true, "strict": true, "target": "es2017", "typeRoots": ["node_modules/@types"] }, "compileOnSave": true, "include": ["src", "decs.d.ts"] }
包.json
{
"name": "functions",
"scripts": {
"lint": "tslint --project tsconfig.json",
"build": "tsc",
"serve": "npm run build && firebase emulators:start --only functions",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "8"
},
"main": "lib/index.js",
"dependencies": {
"@google-cloud/firestore": "^4.2.0",
"@google-cloud/storage": "^5.2.0",
"@types/multer": "^1.4.4",
"cors": "^2.8.5",
"express": "^4.17.1",
"express-multipart-file-parser": "^0.1.2",
"firebase-admin": "^9.2.0",
"firebase-functions": "^3.11.0",
"multer": "^1.4.2"
},
"devDependencies": {
"@types/cors": "^2.8.7",
"firebase-functions-test": "^0.2.0",
"tslint": "^5.12.0",
"typescript": "^3.8.0"
},
"private": true
}
解决方案
这是我的用例。
在 JS 中
const admin = require("firebase-admin")
const functions = require("firebase-functions")
在 TS
import firebase from "firebase/app"
import "firebase/analytics"
import "firebase/auth"
import "firebase/storage"
在 package.json
"dependencies": {
"firebase": "^7.17.1",
...
},
您可以在 firebase 文档页面https://firebase.google.com/docs/web/setup#add-sdks-initialize中找到有关 ES2015 样式导入的官方文档
附言。屏幕截图对于描述您的问题非常有帮助。不要在意
推荐阅读
- ruby-on-rails - 有条件的订单元素
- android - 如何阅读 FIFA/ESPN 的 RSS 提要?
- android - 丢失片段更改的数据
- javafx - 无法获取文本字段输入 [JavaFX]
- python - 在 str 对象上使用 'to_datetime' - 为了更改数据框列名
- go - GoConvey 自定义断言未按预期工作
- c# - multipart/form-data post api 在 hcloud 上不起作用
- c++ - 每个线程使用 boost::asio::deadline_timer 不起作用
- apache-kafka - Ksql:左连接显示流中的列但不显示表
- python - 如何获取数据并将数据发送到 mLab