Node.js 未从命令行部署云功能

Node.js 未从命令行部署云功能,node.js,firebase,google-cloud-functions,firebase-cli,Node.js,Firebase,Google Cloud Functions,Firebase Cli,部署云功能时遇到问题。我移动到保存我的函数的android项目的根目录,并使用firebase deploy命令,我得到以下输出: Last login: Mon Feb 26 23:36:02 on ttys000 joels-MacBook-Pro:~ joeljohnson$ cd /Users/joeljohnson/Documents/Computer\ Science/Android/GradleFinalProject joels-MacBook-Pro:GradleFinalP

部署云功能时遇到问题。我移动到保存我的函数的android项目的根目录,并使用
firebase deploy
命令,我得到以下输出:

Last login: Mon Feb 26 23:36:02 on ttys000
joels-MacBook-Pro:~ joeljohnson$ cd /Users/joeljohnson/Documents/Computer\ Science/Android/GradleFinalProject 
joels-MacBook-Pro:GradleFinalProject joeljohnson$ firebase deploy

=== Deploying to 'gradlefinalproject-42f02'...

i  deploying functions
Running command: npm --prefix $RESOURCE_DIR run lint

Usage: npm <command>

where <command> is one of:
    access, adduser, bin, bugs, c, cache, completion, config,
    ddp, dedupe, deprecate, dist-tag, docs, doctor, edit,
    explore, get, help, help-search, i, init, install,
    install-test, it, link, list, ln, login, logout, ls,
    outdated, owner, pack, ping, prefix, profile, prune,
    publish, rb, rebuild, repo, restart, root, run, run-script,
    s, se, search, set, shrinkwrap, star, stars, start, stop, t,
    team, test, token, tst, un, uninstall, unpublish, unstar,
    up, update, v, version, view, whoami

npm <command> -h     quick help on <command>
npm -l           display full usage info
npm help <term>  search for help on <term>
npm help npm     involved overview

Specify configs in the ini-formatted file:
    /Users/joeljohnson/.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config

npm@5.6.0 /Users/joeljohnson/.nvm/versions/node/v9.4.0/lib/node_modules/npm
上次登录:ttys000上的周一2月26日23:36:02
joels MacBook Pro:~joeljohnson$cd/Users/joeljohnson/Documents/Computer\Science/Android/GraderFinalProject
joels MacBook Pro:毕业生项目joeljohnson$firebase部署
==部署到“gradlefinalproject-42f02”。。。
我正在部署功能
正在运行的命令:npm--前缀$RESOURCE\u DIR run lint
用法:npm
其中一个是:
访问、添加用户、bin、bug、c、缓存、完成、配置、,
ddp、重复数据消除、弃用、距离标签、文档、医生、编辑、,
探索、获取、帮助、帮助搜索、i、初始化、安装、,
安装测试、it、链接、列表、ln、登录、注销、ls、,
过时、所有者、包、ping、前缀、配置文件、修剪、,
发布、rb、重建、repo、重新启动、根目录、运行、运行脚本、,
s、 se,搜索,设置,收缩包装,星形,星形,开始,停止,t,
团队,测试,令牌,tst,取消,卸载,取消发布,取消启动,
向上,更新,v,版本,视图,whoami
npm-h的快速帮助
npm-l显示完整的使用信息
npm帮助搜索上的帮助
npm帮助npm参与概述
在ini格式的文件中指定配置:
/Users/joeljohnson/.npmrc
或者在命令行上通过:npm--键值
配置信息可通过以下方式查看:npm help Config
npm@5.6.0/Users/joeljohnson/.nvm/versions/node/v9.4.0/lib/node_modules/npm
错误:函数预部署错误:命令以非零终止 退出代码1


如何开始解决此错误?

您的项目路径中的“计算机科学”文件夹中有一个空间:

这会弄乱CLI正在运行的lint命令行的解析。你有两个选择:

  • 使用没有空间的路径
  • 在predeploy lint命令中引用$RESOURCE_DIR变量
  • 我建议使用#1,因为在unix中文件名中使用空格不是常规做法,但如果您想使用#2,请编辑您的firebase.json并查找以下行:

      "npm --prefix $RESOURCE_DIR run lint",
      "npm --prefix $RESOURCE_DIR run build"
    
    然后在变量周围加上转义引号:

      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    

    这将防止运行npm的shell将路径中的空格解释为命令行参数分隔符。

    项目路径中的“计算机科学”文件夹中有空格:

    这会弄乱CLI正在运行的lint命令行的解析。你有两个选择:

  • 使用没有空间的路径
  • 在predeploy lint命令中引用$RESOURCE_DIR变量
  • 我建议使用#1,因为在unix中文件名中使用空格不是常规做法,但如果您想使用#2,请编辑您的firebase.json并查找以下行:

      "npm --prefix $RESOURCE_DIR run lint",
      "npm --prefix $RESOURCE_DIR run build"
    
    然后在变量周围加上转义引号:

      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    

    这将防止运行npm的shell将路径中的空格解释为命令行参数分隔符。

    我读到一篇文章,如果在第一个单词后使用“\”然后是空格,则程序会将文件路径视为没有空格。这不是真的吗?我切换文件路径,看看会发生什么。出于好奇,是否可以将部署的应用程序放在我正在处理的android项目根目录之外的文件夹中?$RESOURCE\u DIR不是这样工作的。它不在乎你在命令行上键入了什么-它是文件系统上的实际文件路径。明白了,我创建了另一个文件路径来部署函数,这似乎起了作用…我读了一篇文章,如果你在第一个单词后使用“\”,那么程序会将文件路径视为没有空间。这不是真的吗?我切换文件路径,看看会发生什么。出于好奇,是否可以将部署的应用程序放在我正在处理的android项目根目录之外的文件夹中?$RESOURCE\u DIR不是这样工作的。它不在乎你在命令行上键入了什么-它是文件系统上的实际文件路径。明白了,我创建了另一个文件路径来部署函数,这似乎很有效。。。