Vil*_*lx- 11 git publishing npm typescript
我认为这应该是一个标准问题,但我找不到任何答案......
我有两个打字稿项目 - LibraryA 和 WebserverB。它们是独立的项目,并且每个都有自己的 git 存储库。它们也是私人项目 - 我不希望它们公开。
显然,我想在WebserverB中使用LibraryA。我认为正确的方法是通过 npm,因为它管理所有其他库。幸运的是,npm 在依赖项中支持 git URL,因此我可以将其直接指向 LibraryA 的存储库。
但是该存储库不包含已编译的 Javascript 文件,仅包含 TypeScript 文件。我怎样才能做到这一点?或者说在这种情况下正确的做法是什么?
好的,我将通过其他答案的摘要和一些额外选项来回答我自己的问题。
经过一番思考,我恍然大悟。问题是 - 谁以及何时运行tsc将 LibraryA 的 Typescript 编译为 Javascript?本质上只有几个选择:
让我们详细看看每一个。
那么问题来了——发布的结果存储在哪里?它必须位于 NPM 可以访问的地方。因此,也只有几个选择:
尽管如此,尽管有这些缺点,它们都是可用的选择。
这里的主要缺点是,这会立即依赖于 WebserverB 上的打字稿。不仅是开发依赖性,而且是完整的运行时依赖性。这可能没问题,但它变得非常奇怪。您打算如何部署 WebserverB?那也会运行编译吗?我不认为这是要走的路。但这是可能的。详情请参阅H.B.的回答。
好吧,如果您打算仅在打字稿项目中使用它,那么这可能没问题。但我不确定是否安装它。您需要修改tsconfig.json文件以包含node_modules/LibraryA在编译中。这很奇怪。您的 IDE 会对此感到高兴吗?总而言之,这也不是一个好主意。这感觉就像是在对抗/滥用系统,而且很少有好的结果。
最后,我想我会采用“提交编译的 JS”方法。因为“只是错了”并不是一个好的论据。而且由于它是一个私人项目,额外的已发布资源也不是一个大问题。事实上,也许它们甚至可以帮助调试。