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

问题描述 投票:68回答:2

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

假设文件名是foo.json,我在.gitignore文件中将其添加为foo.json

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

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

node.js git npm
2个回答
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?


12
投票

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

在你的.gitignore文件中,添加你想要排除**/build的文件/目录,并在你的.npmignore文件中确保你指定相同的文件/目录但是使用!前缀所以对于构建示例你要包括!**/build

© www.soinside.com 2019 - 2024. All rights reserved.