所以我在读这个。
据我了解,我有点困惑它是如何工作的:
如果我只有.gitignore
在我的 repo 中,npm 将使用.gitignore
,但如果我同时拥有,.gitignore
并且.npmignore
npm 只会读取.npmignore
,对吗?还是两者都读?
需要知道,如果只是阅读,.npmignore
我也必须从中复制粘贴内容.gitignore
。
或者它会同时读取
如此处所述,它将只读.npmignore
如果要包含文件排除的
.gitignore
内容,可以创建一个空.npmignore
文件来覆盖它。
虽然,Jeff Dickey主张:“看在上帝的份上,不要使用 .npmignore ”
但是,您可能不知道的是,我添加 npmignore 文件的小动作实际上导致
npm
现在查询该文件而不是 gitignore 文件。
这是一个主要问题——我现在已经向公众泄露了我的所有 AWS 凭证,只需添加它.npmignore
来隐藏我的测试目录。更糟糕的是我可能不知道发生了这种情况。
npm publish
不显示打包的文件(它实际上与 npm 6 一起显示)。
我没有看到 npm 注册表上的文件。查看文件的唯一真正方法是将包添加到项目并手动查看 node_modules 内部。有一天我可能会出于好奇而这样做,并发现我的 AWS 凭证已经公开了几个月。
解决方案/更安全的替代方案:
npm
虽然支持白名单,但只需将文件属性package.json
添加到您打算添加到项目中的所有内容中。
现在只有 files 中指定的文件将包含在项目中,并且您的 dotfiles 将被忽略。