所以我正在读this。
据我所知,我有点困惑它的工作原理:
如果我的回购中只有.gitignore
,则npm将使用.gitignore
,但是如果我同时拥有.gitignore
和.npmignore
,则npm仅读取.npmignore
,对?还是会两者都读?
需要知道,如果只是在读.npmignore
,我也必须从.gitignore
复制粘贴内容。
答案 0 :(得分:1)
否则它将同时读取
与mentioned here一样,它将仅读取.npmignore
如果要包含
.gitignore
文件中未包含的内容,可以创建 empty.npmignore
文件以覆盖它。
尽管如此,Jeff Dickey主张:“ For the love of god, don’t use .npmignore”
但是,您可能不知道的是,我添加npmignore文件的小动作实际上导致
npm
现在查询该文件,而不是gitignore文件。
这是一个主要问题-现在,我已经通过添加此.npmignore
隐藏我的测试目录来将所有AWS凭证公开给公众。更糟糕的是,我可能不知道发生了这种情况。
npm publish
不显示打包的文件(实际上对npm 6有用)。
我在npm注册表上看不到文件。查看文件的唯一真实方法是将包添加到项目中,然后手动查看node_modules内部。 我可能有一天会出于好奇而这样做,并发现我的AWS凭证已经在公开场合呆了几个月。
解决方案/更安全的选择:
npm
支持白名单,只需将文件属性和您打算添加到项目的所有内容添加到package.json
。
现在,仅在文件中指定的文件将包含在项目中,并且您的点文件将被忽略。