Firebase部署错误以非零退出代码(项目路径中的空格)开头
我最近在使用firebase deploy命令时遇到问题.在执行firebase deploy命令之后,除了firebase(存储,数据库等)之外,其他所有其他部署也都已部署,因此我决定重新安装firebase以解决这种情况,但是在重新安装后,我的问题变得更大了.现在,它们都没有部署,但出现以下错误:
I was having issues with firebase deploy command recently. After firebase deploy command all others were being deployed except firebase (storage, database etc) So I decided to reinstall firebase to fix this situation but after reinstall my problem got bigger. Now none of them are deployed with the following error:
i deploying database, functions
Running command: npm --prefix $RESOURCE_DIR run lint
npm ERR! path C:\Users\faruk\Google Drive\Android\firebase\1\$RESOURCE_DIR\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\faruk\Google Drive\Android\firebase\1\$RESOURCE_DIR\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\faruk\AppData\Roaming\npm-cache\_logs\2018-01-24T18_21_34_878Z-debug.log
Error: functions predeploy error: Command terminated with non-zero exit code4294963238
经过一番研究,我看到了一些有关此建议的主题
After a bit research, I saw some topics about this which advice to change
$RESOURCE_DIR to %RESOURCE_DIR%
在Windows系统中(我正在使用Windows 10 btw).因此,我编辑了我的 firebase.json 文件,该文件位于我的functions文件夹的上一层.像这样. (我不知道这是否是我应该编辑的正确文件)
in windows systems (I am using windows 10 btw). So, I edited my firebase.json file which is in one upper level of my functions folder. like this. (I don't know if this is the right file that I should edit)
"database": {
"rules": "database.rules.json"
},
"functions": {
"predeploy": [
"npm --prefix %RESOURCE_DIR% run lint"
]
}
}
但是在进行了此编辑之后,我开始收到另一条错误消息,如下所示.
but after this edit, I started to get another error message like this.
i deploying database, 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:
C:\Users\faruk\.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config
npm@5.6.0 C:\Program Files\nodejs\node_modules\npm
Error: functions predeploy error: Command terminated with non-zero exit code1
任何建议都值得赞赏.预先感谢.
Any advice is appreciated. Thanks in advance.
该错误源于您在项目路径("Google云端硬盘")中的某处有空格的事实
The error stems from the fact that you have a space somewhere in the path of your project ("Google Drive"):
C:\Users\faruk\Google Drive\Android\firebase\1\$RESOURCE_DIR\package.json
不幸的是,这使npm命令行感到困惑,并且将其作为两个参数,并以该空格分隔.
Unfortunately, this is confusing the npm command line, and it's taking that as two arguments separated by that space.
通常,我希望能够在整个内容周围加上引号,以防止以这种方式解释空间.所以我尝试了这个:
Normally, I would expect to be able to place quotes around the whole thing to keep the space from being interpreted that way. So I tried this:
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint"
]
对我有用.
我将与Firebase团队内部就此问题以及需要为Windows进行更改的事实进行跟进.
I'll follow up with the Firebase team internally about this issue, as well as the fact that changes need to be made for Windows.