我的Angular5 Typescript应用程序中有一个标准的实用程序服务。 我想与我的节点应用程序共享它,该节点应用程序正在为应用程序提供服务。
我无法找到有关它的任何信息,但我发现问题为:
我认为这是可能的,因为这是使用完整堆栈Javascript的一个主要好处,但它怎么能完成?
我在NodeJs中尝试过以下操作,这会引发错误:
const utilService = require('../../src/app/services/util/util.service');
答案 0 :(得分:2)
我会创建一个包含您的实用程序请求的private npm package。
然后将其导入角度项目和节点项目。
答案 1 :(得分:1)
我能想到如何实现这一目标的唯一方法是提供util.service的编译(ES2015及以下)表示。这样做可能是构建脚本/管道的自动化部分。
或者,如果util.service不经常更改,请使用
手动编译tsc ./src/app/services/util/util.service.ts --out ./src/app/services/util/util.service.js
答案 2 :(得分:1)
你不能,打字稿它是无效的javascript。
为了实现这一点,您还需要编译节点代码,基本上有两个不同的打字稿配置,一个定位浏览器,另一个具有不同的入口点,定位节点。
如果您这样做,那么您将能够在后端和前端之间共享一些代码。虽然使用@injectable()装饰器的服务不起作用。为什么?没有任何Injector可用于处理您的依赖注入。