在节点项目中共享常见的脚本代码

假设我有以下项目结构:

  • web应用
    • 项目A
      • SomeClass.ts
      • 的package.json
    • 项目B
      • SomeClass.ts
      • 的package.json
    • 共同
      • LoggingClass.ts
      • 的package.json

常见的“LoggingClass”需要从NPM中导入一个模块。 假设这个模块是UUID( https://www.npmjs.com/package/uuid )

问题或挑战如下:我们想在ProjectA和ProjectB中使用和导入“LoggingClass”。

问题是,他们可以从通用文件夹中导入代码而没有问题,但是那些项目中不存在模块“UUID”,因为我们没有在他们各自的Package.json中指定。

我不想创build实际的节点模块,因为我的代码需要检查到一个Git仓库。 (有人build议直接开发到node_modules目录)。

我想知道在使用npm的时候,社区其他打字员开发人员在社区中分享他们的代码。 (如果只是打字稿文件,这不会是一个问题,但由于我们对npm的依赖关系…它变得复杂)。

任何想法将不胜感激!

我不想创build实际的节点模块,因为我的代码需要检查到一个Git仓库。

一个真正的NPM模块实际上是一种方式去恕我直言。 您不必将其专门存储在npmjs.org (您可以拥有自己的npm存储库)。

有人build议直接开发到node_modules目录。

这实际上是我能想象的最不方便的方式。 可能我错过了一些重要的东西,但我很想知道他们的想法。

有些东西你不能用基于git的解决scheme[很容易]实现。 例如,如何检出共享代码的特定版本,并保持代码的其余部分不变? 只有一个共享代码所在的目录比较容易。 但是,如果你有很多(基本上,目录作为包),那么它很麻烦。 甚至搞清楚他们的“版本”也是棘手的 – 你必须发明和遵循git标签规则或其他方式来注释提交。

无论如何,我想说的是我的回答不完全是你要求的; 我的回答是一个build议重新评估你的位置(不)包装代码到npm模块 – 这实际上是 JavaScript / TypeScript社区的一个标准

我想知道在使用npm的时候,社区其他打字员开发人员在社区中分享他们的代码

由于你的需求I do not want to create actual node modules since my code needs to be checked into a git repository.

我会简单地重组为

  • web应用
    • 的package.json
    • 了projectA
      • SomeClass.ts
    • 项目B
      • SomeClass.ts
      • 的package.json
    • 共同
      • LoggingClass.ts