我有一个由npm install
命令生成的文件(使用preinstall
任务)。我不想将它添加到git存储库中,也不想添加到NPM项目中。
假设文件名是foo.json
,我在.gitignore
文件中将其添加为foo.json
。
这足以避免在NPM注册表上上传吗?
我知道我可以添加肯定会忽略该文件的.npmignore
文件,但如果.gitignore
已经这样做,我就不会添加它。
使用
.npmignore
文件将东西从包中取出。如果没有.npmignore
文件,但有一个.gitignore
文件,那么npm将忽略.gitignore
文件匹配的东西。如果要包含.gitignore
文件排除的内容,可以创建一个空的.npmignore
文件来覆盖它。
简单来说,如果它存在,npm更喜欢.npmignore
文件,但会回退到.gitignore
文件。因此,如果两者都存在,它将使用.npmignore
文件。
在许多情况下,Git和npm都可以忽略相同的文件,因此单独使用.gitignore
文件是有意义的。如果有任何差异(即npm和Git需要忽略不同的文件),那么你需要维护单独的.gitignore
和.npmignore
文件。
有关放入.npmignore
文件的更多信息:Should I .npmignore my tests?
对于任何阅读本文的人试图忽略git中的文件/目录但希望将其包含在npm发布中并尝试使用空.npmignore
文件而没有运气。这有效。
在你的.gitignore
文件中,添加你想要排除**/build
的文件/目录,并在你的.npmignore
文件中确保你指定相同的文件/目录但是使用!
前缀所以对于构建示例你要包括!**/build