即使package.json
没有"files"
数组,包看起来也会包含所有文件(未被忽略)。
该财产是否必要?
答案 0 :(得分:9)
实际上,您可以使用.npmignore
执行所有操作,因为除非另有说明,否则将添加所有文件。
您可以看到更多here
答案 1 :(得分:5)
您可以将package.json
中的files
property视为 whitelisting 所有应包含在npm版本中的文件,将.npmignore
视为 blacklisting < / em>应当不包含的所有文件。
根据经验,对于我自己的项目,我通常使用:
files
,当我的项目中有很多辅助文件(例如构建脚本,配置文件等)时,不需要包含在npm版本中.npmignore
,只有很少的辅助文件这两种选择在我脑海中的不同情况下都很有用。
答案 2 :(得分:4)
当没有.npmignore
文件时,将使用.gitignore
的内容。因此,在将dist/
之类的生成目录添加到.gitignore
时要小心,因为它们可能最终不在您的生产压缩包中。发生这种情况时,您可以使用package.json
中的“文件”数组来包含它们,因为该文件中的包含将永远不会被排除。
答案 3 :(得分:4)
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
已编辑以处理评论。