【问题标题】:Cloud Functions not Deploying from the Command Line未从命令行部署的云功能
【发布时间】:2018-08-06 17:17:53
【问题描述】:

我在部署云功能时遇到问题。我移动到包含我的函数的 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

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

如何开始解决此错误?

【问题讨论】:

    标签: node.js firebase google-cloud-functions firebase-cli


    【解决方案1】:

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

    /Users/joeljohnson/Documents/Computer Science/Android/GradleFinalProject
    

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

    1. 使用没有空格的路径
    2. 在 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 将路径中的空格解释为命令行参数分隔符。

    【讨论】:

    • 我读过一篇文章,如果您在第一个单词后使用“\”,那么程序会将文件路径视为空格不存在。 askubuntu.com/a/530581 这不是真的吗?我切换文件路径,看看会发生什么。只是出于好奇,部署的文件夹可以不在我正在处理的android项目的根目录中吗?
    • $RESOURCE_DIR 不能这样工作。它不关心你在命令行上输入了什么——它是文件系统上的实际文件路径。
    • 知道了,我创建了另一个文件路径来部署函数,这似乎有效...
    猜你喜欢
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    • 2018-08-09
    • 1970-01-01
    • 2019-01-10
    • 2019-06-26
    相关资源
    最近更新 更多