首页 > 解决方案 > 尝试部署 Firebase 函数时出现语法解析错误教程

问题描述

我正在关注Cloud Functions 教程,以了解如何使用 Firebase Functions。在我需要部署到云的阶段之前,一切都很顺利——由于某种原因,我遇到了语法异常!似乎异常是由 lambda 函数引起的:

$ firebase deploy --only 功能

=== 部署到 'my-project-87547'...

我部署功能
运行命令:npm --prefix "$RESOURCE_DIR" run lint

> 函数@ lint E:\Users\Emmet\Documents\firebase_tutorial\functions
> 埃斯林特。


E:\Users\Emmet\Documents\firebase_tutorial\functions\index.js
  10:65 错误解析错误:意外的令牌 =>

✖ 1 个问题(1 个错误,0 个警告)

npm 错误!代码生命周期
npm 错误!错误号 1
npm 错误!函数@ lint:`eslint .`
npm 错误!退出状态 1
npm 错误!
npm 错误!functions@lint 脚本失败。
npm 错误!这可能不是 npm 的问题。上面可能有额外的日志输出。

npm 错误!可以在以下位置找到此运行的完整日志:
npm 错误!C:\Users\Emmet\AppData\Roaming\npm-cache\_logs\2021-03-31T16_31_27_784Z-debug.log
事件.js:292
      投掷者;// 未处理的“错误”事件
      ^

错误:spawn npm --prefix "%RESOURCE_DIR%" run lint ENOENT
    在 notFoundError (C:\Users\Emmet\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:6:26)
    在 verifyENOENT (C:\Users\Emmet\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:40:16)
    在 ChildProcess.cp.emit (C:\Users\Emmet\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:27:25)
    在 Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)
在 ChildProcess 实例上发出“错误”事件:
    在 ChildProcess.cp.emit (C:\Users\Emmet\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:30:37)
    在 Process.ChildProcess._handle.onexit (internal/child_process.js:277:12) {
  代码:'ENOENT',
  错误号:'ENOENT',
  系统调用:'spawn npm --prefix "%RESOURCE_DIR%" run lint',
  路径:'npm --prefix "%RESOURCE_DIR%" 运行 lint',
  生成参数:[]
}

错误:函数预部署错误:命令以非零退出代码终止1

真正奇怪的是,我正在逐字使用教程本身提供的 index.js,并且它在 Firebase Local Emulator Suite 中按预期成功通过。

作为参考,我从 Windows 10 PC 的 Git Bash 终端(使用管理员)运行我的所有命令。我的 npm 版本是 6.14.11,我的 NodeJS 版本是 v14.16.0。

我知道其他人也遇到过类似的问题,但我还没有看到有人通过教程脚本本身得到它。提前致谢!

标签: node.jsfirebasenpm

解决方案


我有过类似的经历。最终对我有用的是更改 "lint": "eslint .","lint": "eslint",Inside package.json

我怀疑这是由于在 Windows 机器上运行项目所致。

归功于此响应:https ://stackoverflow.com/a/68423649/15719518


推荐阅读