NPM是否忽略.gitignore中列出的文件?

时间:2014-07-24 19:18:18

标签: node.js git npm

我有一个由npm install命令生成的文件(使用preinstall任务)。我不想将它添加到git存储库中,也不想添加到NPM项目中。

假设文件名为foo.json,我将其作为.gitignore添加到foo.json文件中。

这足以避免在NPM注册表上上传吗?

我知道我可以添加肯定会忽略该文件的.npmignore文件,但如果.gitignore已经这样做,我就不会添加它。

2 个答案:

答案 0 :(得分:111)

来自the documentation

  

使用.npmignore文件将内容从包中取出。如果没有.npmignore文件,但 .gitignore文件,那么npm将忽略.gitignore文件匹配的内容。如果您希望包含.gitignore文件排除的内容,则可以创建一个空的.npmignore文件来覆盖它。

简单来说,npm 更喜欢 .npmignore文件(如果有),但会回退到.gitignore文件。因此,如果两者都存在,它将使用.npmignore文件。

在许多情况下,Git和npm都可以忽略相同的文件,因此单独使用.gitignore文件是有意义的。如果存在差异(即npm和Git需要忽略不同的文件),那么您需要维护单独的.gitignore.npmignore文件。

有关.npmignore个文件中的内容的详细信息:Should I .npmignore my tests?

答案 1 :(得分:12)

对于任何阅读本文的人都试图忽略git中的文件/目录但希望将其包含在npm发布中并尝试使用空.npmignore文件而没有运气。这很有效。

在您的.gitignore文件中,添加您要排除的文件/目录**/build,并在.npmignore文件中确保指定相同的文件/目录,但使用{ {1}}前缀因此对于构建示例,您应包含!