What npm package versions am I using (with @rails/webpacker)?

So, you’re using rails/webpacker?

What versions of babel and webpack and other dependencies?

yarn info @rails/webpacker dependencies

Note, you can’t depend on the versions in your package.json because the ^ and ~ mean that the versions listed can be at newer versions listed in the yarn.lock.

By default, yarn add will add a package, placing the current version with a ^.

So yarn add bulma looks results in this change to your yarn file:

    "bulma": "^0.8.0",

So bulma might really be at 0.9!

https://docs.npmjs.com/misc/semver#caret-ranges-123-025-004

Caret Ranges ^1.2.3 ^0.2.5 ^0.0.4§

Allows changes that do not modify the left-most non-zero digit in the [major, minor, patch] tuple. In other words, this allows patch and minor updates for versions 1.0.0 and above, patch updates for versions 0.X >=0.1.0 , and no updates for versions 0.0.X .

Many authors treat a 0.x version as if the x were the major “breaking-change” indicator.

Caret ranges are ideal when an author may make breaking changes between 0.2.4 and 0.3.0 releases, which is a common practice. However, it presumes that there will not be breaking changes between 0.2.4 and 0.2.5 . It allows for changes that are presumed to be additive (but non-breaking), according to commonly observed practices.

  • ^1.2.3 := >=1.2.3 <2.0.0
  • ^0.2.3 := >=0.2.3 <0.3.0
  • ^0.0.3 := >=0.0.3 <0.0.4
  • ^1.2.3-beta.2 := >=1.2.3-beta.2 <2.0.0 Note that prereleases in the 1.2.3 version will be allowed, if they are greater than or equal to beta.2 . So, 1.2.3-beta.4 would be allowed, but 1.2.4-beta.2 would not, because it is a prerelease of a different [major, minor, patch] tuple.
  • ^0.0.3-beta := >=0.0.3-beta <0.0.4 Note that prereleases in the 0.0.3 version only will be allowed, if they are greater than or equal to beta . So, 0.0.3-pr.2 would be allowed.