【问题标题】:Do I need to copy-paste stuff form ".gitignore" to ".npmignore"我需要将“.gitignore”中的内容复制粘贴到“.npmignore”吗
【发布时间】:2019-11-24 07:43:48
【问题描述】:

所以我在阅读this

据我了解,我有点困惑它的工作原理:

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

需要知道,如果它只读取.npmignore,我还必须从.gitignore 复制粘贴内容。

【问题讨论】:

    标签: npm gitignore npmignore


    【解决方案1】:

    或者两个都读

    作为mentioned here,它将只读取.npmignore

    如果您想包含被您的.gitignore 文件排除的内容,您可以创建一个 .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 以及您打算添加到项目中的所有内容。
    现在只有文件中指定的文件将包含在项目中,并且您的点文件将被忽略。

    【讨论】:

    • 假设我在我的.gitignore 中有这个test*,我在.npmignore 中有这个test* .github,那么我很好吗?它不会将任何硬币test* 推送到 github,也不会发布到 npm,也不会将 .github 文件夹发布到 npm,对吗?
    • 你也忘了粘贴第一个链接:As [mentioned here][1], it will read only the .npmignore
    • @Bromer 是的,但不要使用 npmignore,正如解释的那样。
    • 我对 Node 成熟度的看法更低了。
    • 我读了那篇文章,作者的问题是他不知道如果有来自 npm 的愚蠢的 .npmignore 文件,npm 会忽略 .gitignore 文件。但是在我的用户案例中将文件列入白名单对我来说没有任何意义,因为只有 5-10% 的文件需要被忽略。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    相关资源
    最近更新 更多