我在firebase init > emulators
的项目中安装了Firebase函数和Firestore模拟器,但现在意识到我不再需要函数模拟器了,所以我试图删除它。
如何卸载模拟器,使firebase emulators:start
命令在默认情况下不会尝试启动它?
我尝试了以下操作,但firebase init > emulators
继续显示函数模拟器仍处于启用状态(绿点(,并且如果我不包括--only firestore
标志,则默认情况下firebase emulators:start
继续启动函数模拟器。
- 我重新运行
firebase init > emulators
并取消选择函数- 这没有任何作用
- 我手动删除了
firebase.json
中的条目"emulators": { "functions": { // <-- I removed this block "port": 5001 }, "firestore": { "port": 8080 }, "ui": { "enabled": true } }
- 我从
~/.cache/firebase/emulators
中清除了模拟器缓存 - 我从
firebase.json
中删除了functions
块,只是想看看这是否触发了它。{ "functions": { // <-- I removed this block "predeploy": [ "npm --prefix "$RESOURCE_DIR" run clean", "npm --prefix "$RESOURCE_DIR" run lint", "npm --prefix "$RESOURCE_DIR" run build" ], "source": "functions" }, "firestore": { "rules": "firestore.rules", "indexes": "firestore.indexes.json" }, "emulators": { "firestore": { "port": 8080 }, "ui": { "enabled": true } } }
在完成上述所有操作后,firebase emulators:start
仍然尝试启动函数。我想知道这是否是因为firestore模拟器依赖于函数模拟器,但如果是这样的话,我不知道为什么它会让我用--only firestore
单独运行firestore模拟器
在我的案例中,我从node_modules中删除了Function目录,也从firebase.json中删除了functions块。
我只是再次运行npm安装firebase就修复了它。
如果你不想在你的项目中使用云函数,你应该删除"函数";文件夹。
此外,建议您在firebase工具GitHub上为此提交一个bug。在firebase.json中,函数模拟器在没有配置的情况下运行,这感觉像是一个bug,而且它以前不这样工作。