如何调试.npmignore?

cze*_*rny 3 npm npmignore

如何将包文件(要发布的文件)列入调试记录.npmignore

我正在寻找类似的等价物git ls-files.gitignore.

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

npm pack
tar -tzf <package-id>.tgz
Run Code Online (Sandbox Code Playgroud)

fel*_*lix 12

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

\n\n
logger \xe2\x9d\xaf npm pack --dry-run\nnpm notice\nnpm notice   @supercollider.js/logger@1.0.0\nnpm notice === Tarball Contents ===\nnpm notice 817B  package.json\nnpm notice 199B  README.md\nnpm notice 1.7kB lib/index.d.ts\nnpm notice 693B  lib/index.d.ts.map\nnpm notice 3.9kB lib/index.js\nnpm notice 2.9kB lib/index.js.map\nnpm notice === Tarball Details ===\nnpm notice name:          @supercollider.js/logger\nnpm notice version:       1.0.0\nnpm notice filename:      supercollider.js-logger-1.0.0.tgz\nnpm notice package size:  3.0 kB\nnpm notice unpacked size: 10.2 kB\nnpm notice shasum:        6c60400e1d61723ce3d7705bb3a8a9a907b7d83b\nnpm notice integrity:     sha512-+1tQZMPQr3cAp[...]zPu6R/BqYdIJQ==\nnpm notice total files:   6\nnpm notice\nsupercollider.js-logger-1.0.0.tgz\n
Run Code Online (Sandbox Code Playgroud)\n


cze*_*rny 7

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

git ls-files -co --exclude-per-directory=.npmignore
Run Code Online (Sandbox Code Playgroud)

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

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

  • -c 选项说显示缓存的文件
  • -o 显示'其他',即未跟踪的文件
  • --exclude-per-directory=.npmignore使用.npmignore如忽略条目的文件的名称

编辑: 由于上面的方法有一堆例外 - 永远或永远不包括的文件.npmignore- 我发现它不可靠.以下命令是重量级但可靠的:

file_name=$(npm pack) && tar -ztf $file_name && rm $file_name
Run Code Online (Sandbox Code Playgroud)

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