How do I force Yarn to reinstall a package?
You can use the yarn link
command. This will set up your local dependency so that whenever you make a change on the dependency, it immediately shows up in your main project without you having to do anything else to update it.
If your main project is in ~/programming/main
and your dependency is in ~/programming/dependency
and is named MyLocalDependency
, you will want to:
1) Run yarn link
(with no additional flags) from within your dependency:
cd ~/programming/dependency
yarn link
2) Run yarn link <name of dependency package>
from within your main project:
cd ~/programming/main
yarn link MyLocalDependency
And you're done!
If you want to switch from a local copy of the dependency to one hosted elsewhere, you can use yarn unlink
.
cd ~/programming/main
yarn unlink MyLocalDependency
cd ~/programming/dependency
yarn unlink
If you're using NPM instead of Yarn, npm link
and npm link <dependency>
work in effectively the same way. To unlink the dependency, run npm rm --global <dependency>
. (This is because npm link
works by creating a simlink in the global NPM set of packages, so uninstalling the linked dependency from the global packages also breaks the link.)
See the npm link
documentation and How do I uninstall a package installed using npm link?
Reinstalling a package after just deleting the node module works with:
yarn install --check-files
There is one other way.
Just use yarn upgrade package-name
See manual: https://yarnpkg.com/lang/en/docs/cli/upgrade/