【问题标题】:Suitable `.gitignore` For Node.js适合 Node.js 的 .gitignore
【发布时间】:2014-03-08 08:02:48
【问题描述】:

树形结构

这就是我的 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 文件夹(如上所述)?

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

【问题讨论】:

  • 就个人而言,包括任何可以通过 npm-install 检索到的 node_modules 都是难闻的。我在网上有几个地方读过这篇文章,这是一个:blog.heroku.com/archives/2015/11/10/node-habits-2016 它实际上给我造成了一次部署问题,因为一些 node_modules 需要针对不同的平台以某种方式构建

标签: git node.js github npm gitignore


【解决方案1】:

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

/node_modules/*/node-modules/ 

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

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

【讨论】:

    【解决方案2】:

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

    提示:GitHub provides 标准 .gitignore 用于各种语言,例如 Node

    【讨论】:

    • 感谢您的回答。 - 我已经知道 github/gitignore 存储库,但没有任何适合我的用例。
    • 我认为您可能已经这样做了,但指出来总是很方便 :-) .gitignore 行对您有用吗?
    • 不,这是个好主意(谢谢),但遗憾的是没有正确处理src 文件夹中的./node_modules。 - 我试图以另一种方式定义条件(请参阅我自己的答案)。
    【解决方案3】:

    感谢您的回答。

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

    node_modules/*/node_modules
    

    我希望这对将来的任何人都有帮助。

    【讨论】:

      【解决方案4】:
      node_modules/*
      !node_modules/**/node_modules
      

      也许?

      【讨论】:

        猜你喜欢
        • 2019-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-24
        • 2014-05-25
        • 2016-05-18
        • 2011-07-13
        • 2016-11-14
        相关资源
        最近更新 更多