我试图使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那样工作,但显然我在这里遗漏了一些东西。
发布于 2015-06-22 10:21:56
是的,它正在使用glob模式:https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
但我会有一个不同的方法:
dist/*
dist/.*
!dist/file.js为了不忽略整个文件夹,但它的内容(第2行可能不是必需的)。
发布于 2019-12-18 08:40:58
推荐:白名单而不是黑名单
在回答用例时,我建议使用条目在package.json中显式地列出您想要发布的内容,而不是使用.npmignore进行黑名单,因为这样做更有可能不会意外地发布错误的文件。另见:https://medium.com/@jdxcode/for-the-love-of-god-dont-use-npmignore-f93c08909d8d
下面是一个具体的示例包,它看起来有点像:
{
"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"
],
}https://stackoverflow.com/questions/30976685
复制相似问题