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

时间:2015-06-22 09:41:27

标签: node.js npm gitignore package-managers npmignore

我正在尝试npm只下载程序包npm install上目录中的单个文件。

目录如下:

+- dist/
   +- 1.0.0/
   +- 1.0.1/
   +- ...lots of other dirs...
   +- file.js

我希望npm忽略除file.js之外的所有内容,所以我尝试在.npmignore中包含以下内容:

dist/
!dist/file.js

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

2 个答案:

答案 0 :(得分:8)

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

但我会有不同的方法:

dist/*
dist/.*
!dist/file.js

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

答案 1 :(得分:1)

回答用例,我建议在dte中用files entry明确列出要发布的内容,而不用package.json进行黑名单,因为这样做会导致很多您很有可能不会意外发布错误的文件。另请参阅:https://medium.com/@jdxcode/for-the-love-of-god-dont-use-npmignore-f93c08909d8d