我遇到部署Firebase云功能的问题。
重现的步骤
预期结果
期望使用firebase-tools来部署云功能。
实际结果
收到以下错误消息:
λ firebase deploy
=== Deploying to '<projects>'...
i deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run lint
npm ERR! path ...path\firebaseFunction\%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 '...path\firebaseFunction\%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! ...path\AppData\Roaming\npm-cache\_logs\2018-06-17T10_02_45_577Z-debug.log
Error: functions predeploy error: Command terminated with non-zero exit code4294963238
我已经尝试使用Google搜索并按照以下链接中的解决方案进行了搜索,但这对我不起作用: https://github.com/firebase/firebase-tools/issues/610
请帮忙!
谢谢。
答案 0 :(得分:17)
尝试在“ firebase.json”文件中将字符串“ $ RESOURCE_DIR”替换为“%RESOURCE_DIR%”。
现在再次运行deploy命令。它对我有用。
编辑:此修复程序适用于Windows,现在该项目将不再是跨平台的,如以下答案中所述:similar question
答案 1 :(得分:2)
1。在firebase.json文件
中尝试将$RESOURCE_DIR
替换为%RESOURCE_DIR%
和
"npm --prefix $RESOURCE_DIR run lint" to "npm --prefix %RESOURCE_DIR% run lint"
(上面的方法已经解决了)
2。 npm install -g git://github.com/firebase/firebase-tools#master
请在您的项目文件夹中再次尝试安装,这样可以解决问题
答案 2 :(得分:0)
您似乎要么使用旧版本的Firebase CLI,要么使用旧版本初始化的项目。最干净的事情是升级你的CLI:
npm install -g firebase-tools
使用firebase init
从头开始创建一个全新的项目。然后,使用旧项目中的代码重新构建新项目。
答案 3 :(得分:0)
我遇到了同样的问题,只是从firebase.json文件中删除了predeploy,它会正常工作
答案 4 :(得分:0)
第一步:打开firebase.json,您将显示此JSON文件
Dash(length: 200, dashColor: Colors.red)
Step2:删除“ npm --prefix \“ $ RESOURCE_DIR \”运行皮棉”,和“ npm --prefix \“ $ RESOURCE_DIR \”运行构建“
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
}
现在部署,一切正常
答案 5 :(得分:0)
解决方案
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
}
到
"functions": {
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint",
"npm --prefix \"%RESOURCE_DIR%\" run build"
]
}