首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将.npmignore目录中的单个文件白名单?

如何将.npmignore目录中的单个文件白名单?
EN

Stack Overflow用户
提问于 2015-06-22 09:41:27
回答 2查看 7.9K关注 0票数 22

我试图使npm只能在包的npm install目录中下载一个文件。

该目录如下所示:

代码语言:javascript
复制
+- dist/
   +- 1.0.0/
   +- 1.0.1/
   +- ...lots of other dirs...
   +- file.js

我希望npm忽略除了file.js以外的所有东西,所以我尝试在我的.npmignore中包括以下内容

代码语言:javascript
复制
dist/
!dist/file.js

但是,当我安装软件包时,npm仍然会下载dist中的所有目录。我以为这应该像.gitignore那样工作,但显然我在这里遗漏了一些东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-22 10:21:56

是的,它正在使用glob模式:https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package

但我会有一个不同的方法:

代码语言:javascript
复制
dist/*
dist/.*
!dist/file.js

为了不忽略整个文件夹,但它的内容(第2行可能不是必需的)。

票数 16
EN

Stack Overflow用户

发布于 2019-12-18 08:40:58

推荐:白名单而不是黑名单

在回答用例时,我建议使用条目package.json中显式地列出您想要发布的内容,而不是使用.npmignore进行黑名单,因为这样做更有可能不会意外地发布错误的文件。另见:https://medium.com/@jdxcode/for-the-love-of-god-dont-use-npmignore-f93c08909d8d

下面是一个具体的示例包,它看起来有点像:

代码语言:javascript
复制
{
  "files": [
    "gitignore",
    "cirodown",
    "cirodown.js",
    "cirodown.embed.min.css",
    "cirodown.local.min.css",
    "cirodown.min.css",
    "index.js",
    "main.liquid.html",
    "main.scss",
    "nodejs.js"
  ],
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30976685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档