我的firebase.json文件在这里
{
"hosting": {
"public": "public",
"rewrites":[{
"source":"/hello",
"function":"app"
}]
}
}
函数文件夹中的index.js文件
const functions = require('firebase-functions');
const express = require('express');
const app = express();
app.get('/hello', (request, response)=>{
response.send("Hello Working");
});
exports.app = functions.https.onRequest(app);
这是调试日志,显示了我遇到的错误。
Error: ENOENT: no such file or directory, chmod 'C:\Program Files\Java\jre1.8.0_171\bin;C:\Program Files\Java\jdk1.8.0_171\bin;C:\Users\iambe\AppData\Local\Temp;\tmp-47763kzGi6NyBhNP.zip'
at Error (native)
at Object.fs.chmodSync (fs.js:1169:18)
at Object.writeFileTo (C:\Users\iambe\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\adm-zip\util\utils.js:111:20)
at Object.writeZip (C:\Users\iambe\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\adm-zip\adm-zip.js:534:20)
at client.generateUploadUrl.then.then (C:\Users\iambe\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\@google-cloud\functions-emulator\src\cli\controller.js:168:13)
at process._tickDomainCallback (internal/process/next_tick.js:135:7)
[warn] ! functions: Failed to emulate app
[info] i functions: No HTTPS functions found. Use firebase functions:shell if you would like to emulate other types of functions.
是否有人遇到类似问题并解决了?我尝试搜索到处都没有帮助。
答案 0 :(得分:0)
最后我找到了解决方案。这里的问题不在于节点版本,而在于临时目录位置。 在错误消息中,我们可以看到它说没有这样的文件或目录,此后我们可以看到它正在检查文件的路径。
C:\Program Files\Java\jdk1.8.0_171\bin;C:\Users\iambe\AppData\Local\Temp
所以这里的问题是我们也为nodejs设置了一个临时目录。但是由于系统的temp目录的设置,存在一些问题并且节点变得混乱。它不是在查看nodejs临时目录,而是在Windows temp目录。
这是问题的解释。现在让我告诉您解决方案。我所做的是从环境变量中删除了TEMP变量。
您已完成。希望这会有所帮助。
但是我不确定为什么会这样,因为在某些具有此temp目录的计算机中也没有问题。但是在某些计算机中,我们会遇到此问题。如果有人有确切原因,请告诉我。