Great article! Just adding some more points which might be helpful.
You don't need to pack your library to test it.
Just point the package.json dependency to actual library folder instead of the packed version and do npm i once.
npm creates a link to actual folder inside node_modules
Saves you additional steps of packaging and installing it after every change in your test project
npm link uses symbolic links to link to raw source files as opposed to what the end-users will see, which is usually the build artifacts and maybe a subset of the source files copied over. Using npm link does not ensure you've packaged your package correctly.
Thanks for highlighting this use case. I have done this in the past but seemed to run into issues with the linking. Maybe I should give it another go though as does save a few steps.
However, I still like the additional confidence of working off the same item that will actually end up in npm.
I didn't know about this method, I always use npm link.
For developing this is very handy as it is also possible to get autorefresh/hmr
For testing a package before publishing using npm pack seems like a much better alternative because npm link does not care about the files property. All files in the project are included as it is just a symlink.
And I just found out that this should work as well:
npm install https://github.com/username/repo.git
Thanks for sharing!
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Great article! Just adding some more points which might be helpful.
You don't need to pack your library to test it.
Just point the package.json dependency to actual library folder instead of the packed version and do npm i once.
npm creates a link to actual folder inside node_modules
Saves you additional steps of packaging and installing it after every change in your test project
How to do this. Can you explain with code. Please.
The official docs have some examples of this with an explanation of what it does.
docs.npmjs.com/cli/v8/commands/npm...
I tried to summarize the important points in an article of mine, you can find it here: dev.to/receter/the-minimal-setup-t...
npm link
uses symbolic links to link to raw source files as opposed to what the end-users will see, which is usually the build artifacts and maybe a subset of the source files copied over. Usingnpm link
does not ensure you've packaged your package correctly.Thanks for highlighting this use case. I have done this in the past but seemed to run into issues with the linking. Maybe I should give it another go though as does save a few steps.
However, I still like the additional confidence of working off the same item that will actually end up in npm.
I didn't know about this method, I always use
npm link
.For developing this is very handy as it is also possible to get autorefresh/hmr
For testing a package before publishing using
npm pack
seems like a much better alternative becausenpm link
does not care about the files property. All files in the project are included as it is just a symlink.And I just found out that this should work as well:
Thanks for sharing!