我有一个由npm install命令(使用preinstall任务)生成的文件。我不想将其添加到git存储库中,也不想添加到NPM项目中。
假设文件名是foo.json,我将其添加到.gitignore文件中foo.json。
这足以避免将其上传到NPM注册表中吗?
我知道我可以添加.npmignore肯定会忽略该文件的文件,但是如果.gitignore已经执行此操作,则不会添加它。
Answers:
如果项目同时具有.npmignore和.gitignore文件,则npm将仅使用该.npmignore文件。
从文档中:
使用
.npmignore文件将内容拒之门外。如果没有.npmignore文件,但有是一个.gitignore文件,然后将NPM忽略由相匹配的东西.gitignore文件。如果要包括.gitignore文件中排除的内容,则可以创建一个空.npmignore文件来覆盖它。
简单来说,npm会选择该.npmignore文件(如果存在),但是会退回到该.gitignore文件。
在许多情况下,Git和npm都可以忽略相同的文件,因此仅使用一个.gitignore文件是有意义的。如果存在差异(即npm和Git需要忽略不同的文件),则需要维护单独的.gitignore和.npmignore文件。
有关放入.npmignore文件内容的更多信息:我是否应该.npmignore我的测试?
.npmignore包含与以下内容相同的内容的文件,.gitignore但该bin/行已删除。
.gitignore文件中排除的内容,则可以创建一个空.npmignore文件来覆盖它。” 在您的情况下,您将需要复制.gitignore到.npmignore,并.npmignore仅从中删除文件夹。
.gitignore不包含bin/我的反编译ES6应用程序所在目录的目录,因此我可以推送lib/ES6编写的应用程序。但是,您可能会发现,问题在于npm中发布的软件包必须具有bin/