3

In case an application has a package-lock.json or shripkwrap.json, both npm install/npm ci command would honor the dependencies versions (in package-lock.json or shripkwrap.json), what purpose would tilde(~) and caret(^) serve in package.json?

mavHarsha
  • 1,056
  • 10
  • 16
  • npm allows installing newer version of a package than the one specified. Using tilde ( ~ ) gives you bug fix releases and caret ( ^ ) gives you backwards-compatible new functionality as well. – Shivanshu Gupta Jun 24 '20 at 17:00
  • Does this answer your question? [What's the difference between tilde(~) and caret(^) in package.json?](https://stackoverflow.com/questions/22343224/whats-the-difference-between-tilde-and-caret-in-package-json) – Shivanshu Gupta Jun 24 '20 at 17:08

1 Answers1

0

Tilde ~ and caret ^ are used in package.json to say that your software is compatible with new patch or minor versions of a specific dependency.

But as you've identified, npm install ignores new patch or minor versions when a package-lock.json file is present.

Instead, run npm update.

This installs the latest version of any dependencies, based on how you've defined the version in package.json. It also updates package-lock.json accordingly.

Tom Gregory
  • 105
  • 6