我有一个由npm install
命令生成的文件(使用preinstall
任务)。我不想将它添加到git存储库中,也不想添加到NPM项目中。
假设文件名为foo.json
,我将其作为.gitignore
添加到foo.json
文件中。
这足以避免在NPM注册表上上传吗?
我知道我可以添加肯定会忽略该文件的.npmignore
文件,但如果.gitignore
已经这样做,我就不会添加它。
答案 0 :(得分:111)
使用
.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}}前缀因此对于构建示例,您应包含!