What you want is to add it to bundledDependencies
:
dependencies
: NPM automatically installs them when someone else uses your library. Dependencies listed here also need to be whitelisted inside ng-package.json ("whitelistedNonPeerDependencies")
peerDependencies
: The user of your library has to install the dependency (adding it to his own package.json)
bundledDependencies
: The dependency will be bundled together with your library when building it. This will also bundle all transitive dependencies. If you want to stop this chain, you need to add the dependency which should not be bundled to peerDependencies
. So for example if you want to bundle dependency A, which has a dependency on B, you get a bundle with A and B. If you don't want B bundled, you add it to the peerDependencies
.
Each dependency you have should only appear in one of these at the same time. To bundle a dependency, you therefore need to add this dependency to the package.json of the root (not the library-package.json). What you should NOT do is run npm install
inside the library folder. If you do npm install
inside the library folder and don't have the bundled dependencies in the root package.json (and it's therefore missing from the root node_modules folder), you get a successful build, but the dependencies will not be included in the build (the cli should maybe hint at this ..).
Long story short, for your specific problem:
- Remove "ngx-spinner" from the "dependencies"-section of your library-package.json
- Remove the node_modules-folder inside your library (if you have one there)
- Add "ngx-spinner" as a dependency to your root-package.json
- Build the lib