如何提取节点模块(使用 git)?

How do I factor out a node module (using git)?

假设我有一个像这样的简单节点项目:

/
index.js
|
package.json
|
-- mymodules/my-awesome-module.js
|
-- node_modules

让我们再说一下,当我开发这个应用程序时,我注意到 mymodules/my-awesome-module.js 对其他项目也很有用。

所以我想把它分解出来——但我也想在当前项目中继续改进我的模块,就像我到目前为止所做的那样。

我被困在这里的是两个问题:

首先,我如何设法将我的模块放入 npm 模块中,它仍然是我的项目树的一部分?

其次,如果我能设法做到这一点,我将如何设法将该模块变成一个单独的 git 存储库,前提是仍将其保留在我的项目树中?

我希望,这个post有点容易理解。

方法 1(简单方法): 如果您希望您的文件位于当前文件系统的多个位置,您可以使用软链接,例如:

$> ln -s mymodules/my-awesome-module.js /path-to-my-other-project/my-awesome-module.js

如果您想在两个项目上都使用版本控制系统,您甚至可以使用硬链接(将 -s 选项排除在外)。

注意: 如果您这样做,您将始终必须考虑更改(可能由 git 完成)也会影响使用此文件的所有其他项目。

方法 2(不太容易,但更好的方法): 您可以在它自己的 git 存储库中开发此文件,然后将其用作所有其他存储库中的 git submodule