我使用的是在角度/火力项目上使用燃料模拟器套件,包括云功能模拟器。火箱工具9.23.1。打字稿版本4.5.4。在

问题描述 投票:0回答:3
以观看功能项目的SRC文件夹,并在任何更改上转移。然后,我使用

tsc -w

启动模拟器。模拟器套件成功启动,并且云功能在开始时功能中包含的代码运行。
当我在 /src中的.ts文件中保存对代码的更改时,主文件夹中的.js文件立即反映了这些更改;
firebase emulators:start
似乎正在按预期观看和移动。

但是,当我调用模拟功能之后,从保存和移动之前,它们仍然运行旧代码。 Cloud Firestore的文档说:

注:您在活动会话中进行的代码更改会由模拟器自动重新加载。如果您的代码需要转移(打字稿,React),请务必在运行模拟器之前这样做。您可以在保存时以tsc -w之类的命令自动运行tsc -w和transpile和重新加载代码的命令。
我不知道我在这里缺少什么。无论我使用脚本启动观察者和仿真器还是手工做的,我都会得到相同的行为。我还尝试使用

tsc -w

firebase serve --only functions
没有运气。我需要在

firebase serve:shell

上使用一个标志来说服模拟器观察更改吗?

tsconfig.json文件是一个打字稿配置文件。您可以使用该文件来设置编译器,建立代码格式规则,并在最关键的是,告诉它项目中的TS文件。你知道了。如果要密切关注文件,请使用“手表”标志:TSC-在软件包脚本中 - 观察。

TSC-Watch

的开发是为了使打字稿开发更加容易。类似于Nodemon,但对于打字稿,此命令通常用于重新启动节点服务器。

标题示例:
firebase emulators:start
这是一个示例tsconfig.json文件:

"scripts": { "serve": "npm run build -- --watch | firebase emulators:start --only functions", ... }`
typescript firebase google-cloud-functions angularfire2 firebase-tools
3个回答
9
投票
另一个可能不是完美的选择是停止并重新运行仿真器。

我在网上阅读的次数越多,我开始怀疑我的问题对我来说是独一无二的。我已经看过其他人报告类似行为的情况,并且不可再现,这意味着我在应用程序中的某个地方遇到了一个潜在的问题。 因此,我正在浏览我的应用模块,并意识到我在那里有一些旧的Angularfire进口。从那以后,我已经升级到了Angularfire 7.2,但是这些仍然存在,显然,我当地的仿真了。它们现在被删除了,一切都很好。谢谢你的眼睛。 { "compilerOptions": { "target": "es5", "module": "commonjs", "declaration": false, "noImplicitAny": false, "removeComments": true, "noLib": false }, "include": [ "**/*" ], "exclude": [ "node_modules", "**/*.spec.ts" ]}

样品类似于
provideAnalytics(() => getAnalytics()), provideAuth(() => getAuth()), provideFirestore(() => getFirestore()), provideFunctions(() => getFunctions()), provideRemoteConfig(() => getRemoteConfig()), provideStorage(() => getStorage()),```

观看代码更改,但如果更改了打字稿代码,则不会再次尝试编译。所以我的修复是:

run

firebase emulators:start

(如果需要的话)

1
投票
同时在单独的终端上运行

firebase emulators:start

,在我的情况下是

--only functions



0
投票
npm run build:watch

tsc --watch

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.