【发布时间】:2016-10-17 20:24:28
【问题描述】:
看起来该包将包含所有文件(未被忽略),即使 package.json 没有 "files" 数组。
这个属性有必要吗?
【问题讨论】:
-
有点相关,我想排除一些目录,但包括他们的父母。我最终做了
"files": ["dist/*", "src/*", "!/**/__tests__"],
标签: npm package.json
看起来该包将包含所有文件(未被忽略),即使 package.json 没有 "files" 数组。
这个属性有必要吗?
【问题讨论】:
"files": ["dist/*", "src/*", "!/**/__tests__"],
标签: npm package.json
您可以将package.json 中的files property 视为应包含在npm 版本中的所有文件的允许列表,将.npmignore 视为拒绝列表应该不包含的所有文件。
根据经验,对于我自己的项目,我通常使用:
files 当我的项目有很多不需要包含在 npm 版本中的辅助文件(如构建脚本、配置文件等)时.npmignore 只有少数这样的辅助文件时在我看来,这两个选项在不同的场景中都很有用。
【讨论】:
并非如此,您可以使用.npmignore 完成所有操作,因为除非另有说明,否则所有文件都已添加。
你可以看到更多here
【讨论】:
.npmignore。 medium.com/@jdxcode/…
This article makes a good argument 用于使用 files 属性(如 F Lekschas 所说的白名单),而不是使用 .npmignore。原因包括:
Note that some files are included even if you don't whitelist them。其中包括:
package.json
README
CHANGES / CHANGELOG / HISTORY
LICENSE / LICENCE
NOTICE
The file in the “main” field
编辑地址评论。
【讨论】:
npmignore 不会导致.gitignore在日常工作中被忽略。
当没有.npmignore 文件时,将使用.gitignore 的内容。因此,在将生成的目录(如dist/)添加到您的.gitignore 时要小心,因为它们最终可能不在您的生产压缩包中。发生这种情况时,您可以使用 package.json 中的“文件”数组来包含它们,因为该文件中的包含将永远不会被排除。
【讨论】: