将firebase-tools
从6.8.0
升级到6.9.0
后,我的本地功能停止工作。从应用程序调用它时,出现以下错误消息:
λ firebase.cmd serve --only functions:upload
+ functions: Using node@12 from host.
+ functions: Emulator running at http://localhost:5001
i functions: Beginning execution of "upload"
! Error: Cannot find module 'package.json'
Require stack:
- C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:610:15)
at Function.Module._load (internal/modules/cjs/loader.js:526:27)
at Module.require (internal/modules/cjs/loader.js:666:19)
at require (internal/modules/cjs/helpers.js:16:16)
at verifyDeveloperNodeModules (C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:125:32)
at C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:457:26
at Generator.next (<anonymous>)
at C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:7:71
at new Promise (<anonymous>)
at __awaiter (C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:3:12)
! Your function was killed because it raised an unhandled error.
我已经重新安装了node和npm(包括删除%appdata%文件),删除了所有node_module
文件,并使用npm ci
重新安装了所有内容,但是问题仍然存在。
firebase.cmd
是版本6.0.0
我如何继续?升级之前,我可以提供完全相同的功能,但是即使使用npm i firebase-tools@6.8.0
降级的问题现在仍然存在。
当前功能:
const functions = require('firebase-functions');
exports.upload = functions.https.onRequest((req, res) => {
console.log('Upload initiated')
return null;
});
答案 0 :(得分:0)
从firebase-tools 6.7.2升级到6.9.0后,我遇到了同样的问题
这些步骤对我有用,可以回滚到Windows 10上的先前版本:
详细步骤:
如果有多个,请切换nodejs版本。我从所有版本中删除了功能仿真器和firebase-tools。需要分别为每个版本进行卸载。
nvm使用8.16.0
卸载功能仿真器。更多信息:https://github.com/GoogleCloudPlatform/cloud-functions-emulator/wiki/Troubleshooting
npm卸载-g @ google-cloud / functions-emulator
卸载firebase-tools
npm卸载-g firebase-tools
删除在“ C:\ Users \您的用户名\ .config \ configstore @ google-cloud \ functions-emulator”中找到的功能仿真器配置文件夹
安装早期版本的firebase-tools。版本在https://www.npmjs.com/package/firebase-tools
中列出npm install -g firebase-tools@6.8.0
我相信您可能只能将功能仿真器与一个nodejs版本一起使用,因此,如果您将其与8.16.0一起安装,则请确保在使用“> nvm use 8.16.0”之前已切换至该版本。开始在本地测试云功能
登录到Firebase
firebase登录
在您的项目目录中更新功能和管理软件包
npm install firebase-functions @ latest firebase-admin @ latest --save
开始本地测试
firebase函数:shell 或使用 火力发球服务
注意:直接使用'firebase emulators:start'调用功能仿真器将无效。
在github上关注此问题以获取更新:https://github.com/firebase/firebase-tools/issues/1258