Publishes a package together with its dependencies
When publishing a package, dependencies are not bundled with the package. Although you could use bundledDependencies, you have to list all the dependencies you want to bundle.
publish-packed
bundles all dependencies with your package:
-
it installs all your dependencies first
-
it moves the
node_modules
folder from the root of your package tolib/node_modules
When publishing, npm ignores the
node_modules
folder in the root of your package. However, it packs allnode_modules
in subfolders. -
it escapes the
dependencies
field in your package'spackage.json
, so during installation no dependencies of your package will be installed, except optional dependencies. -
it can prune
node_modules
, removing markdown files, tests, configs and other resources that are not code
Limitations:
- you can use
publish-packed
only if all your source code is in thelib/
directory because all your dependencies are going to be insidelib/node_modules
. - you can use
publish-packed
only if your prod dependencies don't have lifecycle events likepostinstall
that should be executed during installation
<npm|pnpm|yarn> add -D publish-packed
Add publish-packed
to the prepublishOnly
and postpublish
scripts of your package.json
:
"scripts": {
"prepublishOnly": "publish-packed",
"postpublish": "publish-packed"
}
To publish the package, just run <npm|pnpm|yarn> publish
.