Useful for double-checking you're not publishing anything
unwanted prior to an npm publish
.
Note some files may not yet exist (e.g. .npmignore
).
npm install pkgfiles
> pkgfiles
FILE SIZE %
test/pkg/lib/index.js 0 B 0%
test/pkg/index.js 0 B 0%
.npmignore N/A
.travis.yml 84 B 1%
test/pkg/package.json 269 B 2%
test/index.js 739 B 6%
package.json 900 B 7%
LICENSE 1.08 kB 9%
index.js 2.99 kB 24%
Readme.md 3.12 kB 25%
bin/pkgfiles.js 3.43 kB 27%
PKGFILES SUMMARY
Size with Dependencies ~885.15 kB
Publishable Size ~12.61 kB
Number of Files 11
> pkgfiles --disk
FILE SIZE % DISK SIZE DISK SIZE %
test/pkg/lib/index.js 0 B 0% 0 B 0%
test/pkg/index.js 0 B 0% 0 B 0%
.npmignore N/A
.travis.yml 84 B 1% 4.1 kB 13%
test/pkg/package.json 269 B 2% 4.1 kB 13%
test/index.js 519 B 5% 4.1 kB 13%
package.json 900 B 8% 4.1 kB 13%
LICENSE 1.08 kB 9% 4.1 kB 13%
Readme.md 2.37 kB 21% 4.1 kB 13%
index.js 2.99 kB 26% 4.1 kB 13%
bin/pkgfiles.js 3.26 kB 28% 4.1 kB 13%
PKGFILES SUMMARY
Size on Disk with Dependencies ~2.34 MB
Size with Dependencies ~865.27 kB
Publishable Size on Disk ~32.77 kB
Publishable Size ~11.47 kB
Number of Files 11
> pkgfiles --sort=name
FILE SIZE %
.npmignore N/A
.travis.yml 84 B 1%
LICENSE 1.08 kB 8%
Readme.md 4.24 kB 31%
bin/pkgfiles.js 3.5 kB 25%
index.js 2.99 kB 22%
package.json 900 B 7%
test/index.js 739 B 5%
test/pkg/index.js 0 B 0%
test/pkg/lib/index.js 0 B 0%
test/pkg/package.json 269 B 2%
PKGFILES SUMMARY
Size with Dependencies ~886.34 kB
Publishable Size ~13.8 kB
Number of Files 11
All sizes are in bytes.
var pkgfiles = require('pkgfiles')
pkgfiles(process.cwd(), function(err, entries, packages) {
// entries: Array of information about files and dirs that would be included
// packages: Array of package.jsons that would be included
entries.forEach(function(entry) {
console.log('%s – %d bytes', entry.file, entry.size)
})
// /Users/timoxley/Projects/pkgfiles/package.json – 900 bytes
// /Users/timoxley/Projects/pkgfiles/.npmignore – 0 bytes
// /Users/timoxley/Projects/pkgfiles/LICENSE – 1076 bytes
// /Users/timoxley/Projects/pkgfiles/index.js – 2933 bytes
// /Users/timoxley/Projects/pkgfiles/.travis.yml – 84 bytes
// /Users/timoxley/Projects/pkgfiles/Readme.md – 1684 bytes
// /Users/timoxley/Projects/pkgfiles/bin/pkgfiles.js – 2927 bytes
// /Users/timoxley/Projects/pkgfiles/test/index.js – 519 bytes
// /Users/timoxley/Projects/pkgfiles/test/pkg/package.json – 269 bytes
// /Users/timoxley/Projects/pkgfiles/test/pkg/index.js – 0 bytes
// /Users/timoxley/Projects/pkgfiles/test/pkg/lib/index.js – 0 bytes
})
var pkgfiles = require('pkgfiles')
pkgfiles.summary(process.cwd(), function(err, results) {
results.entries // entries from pkgFiles
results.packages // packages from pkgFiles
results.extractedSize // size including dependencies
results.extractedDiskSize // size on disk including dependencies
results.publishSize // size excluding dependencies
results.publishDiskSize // size on diesk excluding dependencies
})
This is a wrapper around whatever version of fstream-npm
is installed in
the global npm
. It has an async callback interface (instead of a
stream), and keeps the original path (instead of nesting paths in
'package').
MIT