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
上使用一个标志来说服模拟器观察更改吗?
TSC-Watchtsconfig.json文件是一个打字稿配置文件。您可以使用该文件来设置编译器,建立代码格式规则,并在最关键的是,告诉它项目中的TS文件。你知道了。如果要密切关注文件,请使用“手表”标志:TSC-在软件包脚本中 - 观察。
的开发是为了使打字稿开发更加容易。类似于Nodemon,但对于打字稿,此命令通常用于重新启动节点服务器。
标题示例:
firebase emulators:start
这是一个示例tsconfig.json文件:
"scripts": {
"serve": "npm run build -- --watch | firebase emulators:start --only functions",
...
}`
我在网上阅读的次数越多,我开始怀疑我的问题对我来说是独一无二的。我已经看过其他人报告类似行为的情况,并且不可再现,这意味着我在应用程序中的某个地方遇到了一个潜在的问题。
因此,我正在浏览我的应用模块,并意识到我在那里有一些旧的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()),```
观看代码更改,但如果更改了打字稿代码,则不会再次尝试编译。所以我的修复是:
runfirebase emulators:start
firebase emulators:start
--only functions
npm run build:watch
tsc --watch