15

树形结构

这就是我的 Node.js 项目的组织方式:

/
| - node_modules               [+ INCLUDE]
|   | - my-mod1
|   |   | - node_modules       [- IGNORE]
|   |   |   | - external-mod1 
|   |   |   | - external-mod2 
|   |   | - src
|   |   |   | - node_modules   [+ INCLUDE]
|   |   |   |   | - my-mod2 
|   |   |   |   | - my-mod3
|   | - my-mod4

我的计划

将我的项目发布到 GitHub 时:

  • 包括my-mods
  • 不想包括 external-mods

这意味着:

  • 包含顶级/node_modules文件夹。
  • 不想包含作为模块文件夹node_modules直接子文件夹的文件夹。
  • 但我包括node_moduels文件夹的子src文件夹。

我做了什么

我将以下几行添加到/.gitignore

#################  
## npm
#################

npm-debug.log
node_modules/
!/node_modules/
!src/node_modules/

我的问题

我需要哪些.gitignore规则来包含正确的node_modules文件夹(如上所述)?

谢谢 - 如果有任何不清楚的地方,请发表评论。

4

4 回答 4

15

由于您的结构非常有条理,您可以使用此模式来完成任务。

/node_modules/*/node-modules/ 

上述模式将忽略模块文件夹下的 node_modules、my-mod1、my-mod4 等。

当您推送到 github 时,上面的行仍然允许包含 src 目录下的 node_modules。

于 2013-02-20T14:03:25.737 回答
8

node_modules/**/node_modules应该适用于您正在尝试做的事情。

提示:GitHub.gitignore为各种语言(如Node )提供标准。

于 2013-02-19T16:44:14.983 回答
4

感谢您的回答。

我重新考虑了条件并决定以另一种方式声明条件 - 它完美地工作:

node_modules/*/node_modules

我希望这能够在未来帮助任何人。

于 2013-02-23T15:19:18.600 回答
0
node_modules/*
!node_modules/**/node_modules

也许?

于 2013-02-19T16:41:43.447 回答