Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including npm-publish-files with all npm packages installed. Try it out:

npm-publish-files lists no main file and has no index.js, so it can't be directly required. If this is a mistake, please let us know. It may however contain internal files that you can require manually:

// require("npm-publish-files/[??]")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

npm-publish-files v1.2.3

Copy special files `npm publish` always includes to a sub directory


GitHub Actions version code size dependencies devDependencies

❯ npx npm-publish-files --help
Usage: npm-publish-files [options] <dir>

Copy special files `npm publish` always includes to a sub directory

  -V, --version         output the version number
  -f, --force           overwrite existing files (default: false)
  -c, --clean           remove files instead of copying (default: false)
  -i, --include <glob>  glob for additional files (default: [])
  -x, --exclude <glob>  glob to prevent copying files (default: [])
  -h, --help            display help for command

If you want to build a large npm project into a sub folder dist/, but then treat that as the root directory for the published package, you will need to copy all other special files npm includes in the publish. Let npm-publish-files do that for you!


This script will make sure all necessary files are copied to dist/ before running npm publish:

  "scripts": {
    "prepublishOnly": "npm-publish-files --force dist"

Any additional files specified in the "file" property of package.json will also be copied.

After this your are free to run npm publish dist.

Files Copied

npm-publish-files uses the npm-packlist package under the hood to determine which files to copy. Please read its readme to better understand the algorhithm.

To copy additional files, supply one or more globs with the --include option. All matched files will be copied to <dir>.

To exclude files from being copied, supply one or more globs with the --exclude option. These will be applied last, so they filter both the default files, as well as those matched via the --include option.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free