如何调试 .npmignore?

How to debug .npmignore?

打包文件(待发布)如何在.npmignore中列出调试记录?

我正在为 .gitignore.

寻找类似 git ls-files 的等价物

到目前为止我发现的唯一方法是打包然后列出我觉得有点笨拙的存档:

npm pack
tar -tzf <package-id>.tgz

正如 Mike 'Pomax' Kamermans 在 中提到的,可以利用 .npmignore.gitignore 使用相同语法的事实:

git ls-files -co --exclude-per-directory=.npmignore

上面的命令根据 .npmignore 文件准确列出了未被 npm 忽略的文件。 (除此之外,npm 会自动忽略其他一些条目,例如 node_modules。)

Git ls-files 命令通常列出工作目录和索引中的文件组合。

  • -c 选项表示显示缓存文件
  • -o 显示 'other',即未跟踪的文件
  • --exclude-per-directory=.npmignore 使用 .npmignore 作为忽略条目的文件名

编辑: 由于上面的方法有一堆 exceptions - 无论 .npmignore 的内容如何,​​这些文件永远不会或总是包含 - 我觉得它不可靠。以下命令重量级但可靠:

file_name=$(npm pack) && tar -ztf $file_name && rm $file_name

它打包项目,列出包文件,最后删除创建的包。

npm pack --dry-run 打印出将包含的内容

logger ❯ npm pack --dry-run
npm notice
npm notice   @supercollider.js/logger@1.0.0
npm notice === Tarball Contents ===
npm notice 817B  package.json
npm notice 199B  README.md
npm notice 1.7kB lib/index.d.ts
npm notice 693B  lib/index.d.ts.map
npm notice 3.9kB lib/index.js
npm notice 2.9kB lib/index.js.map
npm notice === Tarball Details ===
npm notice name:          @supercollider.js/logger
npm notice version:       1.0.0
npm notice filename:      supercollider.js-logger-1.0.0.tgz
npm notice package size:  3.0 kB
npm notice unpacked size: 10.2 kB
npm notice shasum:        6c60400e1d61723ce3d7705bb3a8a9a907b7d83b
npm notice integrity:     sha512-+1tQZMPQr3cAp[...]zPu6R/BqYdIJQ==
npm notice total files:   6
npm notice
supercollider.js-logger-1.0.0.tgz