如何提取节点模块(使用 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。
假设我有一个像这样的简单节点项目:
/
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。