Skip to content

Sanity check which files you are and aren't about to publish to npm

License

Notifications You must be signed in to change notification settings

timoxley/pkgfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pkgfiles

List all files which would be published in a package.

Build Status

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).

Installation

npm install pkgfiles

CLI

> 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

API

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
})

Description

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').

See Also

License

MIT

About

Sanity check which files you are and aren't about to publish to npm

Resources

License

Stars

Watchers

Forks

Packages

No packages published