0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

npm packageのバージョンアップデート範囲を指定したい(semver、^、~)

Last updated at Posted at 2024-01-17

1. 問題

よく使うnpm package「notrealmodule 10.0.0」に新機能が追加されたので早速アップデートしたい。
でもアプリに不具合が起きるかもしれないので怖い。
package.jsonにどう書けばいいんだろ?そもそも10.0.0とは何?

2. 環境

npm packageを使用する環境すべて。

3. 解決

^をつけて、minor visionまでのみアップデートされるようにする。

package.json
  "dependencies": {
    "notrealmodule": "^10.0.0",
  }

10.0.0はsemver方式と言って、順番にmajor、minor、patchを意味する。

4. 詳細

4.1 semverとは

Sementic versioningの略。
Javascriptエコシステムで推奨されているnpm package version 管理方式。

major:変更点が多い場合。APIの互換性を持たない変更。
minor:些細な機能追加。APIの互換性を保ちつつ機能性をAPIに追加した場合。
patch:バグ修正。APIに影響なし。

しかしすべてのnpm packageがsemverを守っているわけではない。
例:typescript

4.2 version範囲の指定方法

package.jsonにpackageのversion更新範囲を指定することができる。
version範囲の表記方法には代表的に以下のようなものがある。

version:正確に一致。
>verison:versionより大きい。
^version:patchとminorアップデート。
~version:patchアップデート。

5. 関連知識

npm packageを一括更新してみましょう(npm outdated、npm update)

6. まとめ

npm packageはsemverでversion管理をする。
package.jsonで^~などでpackageのアップデート範囲の指定ができる。

7. 参考

About semantic versioning
Semantic Versioning 2.0.0
package.json
Downloading and installing Node.js and npm
About semantic versioning
node-semver

8. 感じたこと

昔は^~の違いが分からなかったけど、今は一気にわかる。よかったね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?