我有一个由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/