如何列出包文件(要发布的文件)以调试.npmignore
中的记录?
我正在为git ls-files
寻找类似于.gitignore
的内容。
到目前为止,我找到的唯一方法是打包,然后列出我觉得有点笨拙的档案:
npm pack
tar -tzf <package-id>.tgz
答案 0 :(得分:7)
Mike&#39; Pomax&#39; Kamermans在comment中提到可以利用.npmignore
和.gitignore
使用相同语法的事实:
git ls-files -co --exclude-per-directory=.npmignore
上面的命令根据.npmignore
文件准确列出了不是npm-ignored的文件。 (除此之外,npm会自动忽略其他一些条目,例如node_modules
。)
Git ls-files
命令通常列出工作目录和索引中的文件组合。
-c
选项说明显示缓存文件-o
显示&#39;其他&#39;,即未跟踪文件--exclude-per-directory=.npmignore
使用.npmignore
作为忽略条目的文件名称 修改强>
由于上面的方法有大量的exceptions - 无论.npmignore
的内容如何都不会或永远包含的文件 - 我发现它不可靠。以下命令是重量级但可靠的:
file_name=$(npm pack) && tar -ztf $file_name && rm $file_name
它打包项目,列出包文件,最后删除创建的包。
答案 1 :(得分:0)
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