3

所以我在读这个

据我了解,我有点困惑它是如何工作的:

如果我只有.gitignore在我的 repo 中,npm 将使用.gitignore,但如果我同时拥有,.gitignore并且.npmignorenpm 只会读取.npmignore,对吗?还是两者都读?

需要知道,如果只是阅读,.npmignore我也必须从中复制粘贴内容.gitignore

4

1 回答 1

3

或者它会同时读取

如此处所述,它将只读.npmignore

如果要包含文件排除的.gitignore内容,可以创建一个 .npmignore文件来覆盖它。

虽然,Jeff Dickey主张:“看在上帝的份上,不要使用 .npmignore

但是,您可能不知道的是,我添加 npmignore 文件的小动作实际上导致npm现在查询该文件而不是 gitignore 文件。
这是一个主要问题——我现在已经向公众泄露了我的所有 AWS 凭证,只需添加它.npmignore来隐藏我的测试目录

更糟糕的是我可能不知道发生了这种情况。npm publish不显示打包的文件(它实际上与 npm 6 一起显示)。
我没有看到 npm 注册表上的文件。

查看文件的唯一真正方法是将包添加到项目并手动查看 node_modules 内部。有一天我可能会出于好奇而这样做,并发现我的 AWS 凭证已经公开了几个月。

解决方案/更安全的替代方案:

npm虽然支持白名单,但只需将文件属性package.json添加到您打算添加到项目中的所有内容中。
现在只有 files 中指定的文件将包含在项目中,并且您的 dotfiles 将被忽略。

于 2019-11-24T07:57:54.200 回答