Node.js・npmのバージョン最新化(on MacOS)
今回は、以前nodebrew
でインストールしたNode.jsとnpmについて
バージョンを最新化する手順を説明しています。
Vue CLIインストール時に、npmが古く脆弱性の警告出力
Vue.jsの環境を構築するために、久々にnpm install @vue/cli
したところ、インストールしたパッケージに脆弱性(vulnerabilities)があると警告が出ました。
警告メッセージを確認するとnpmのバージョンが古いため@vue/cli
も古いモジュールしかインストール出来なかったようです。
そこで、インストール後にしばらく放置していたNode.jsとnpmのバージョンを最新化します。
% npm install @vue/cli
npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated apollo-server-plugin-base@3.7.1: The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated apollo-server-errors@3.3.1: The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated apollo-server-env@4.2.1: The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated apollo-datasource@3.3.2: The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated apollo-reporting-protobuf@3.3.3: The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated apollo-server-types@3.7.1: The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated apollo-server-core@3.11.1: The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated apollo-server-express@3.11.1: The `apollo-server-express` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated subscriptions-transport-ws@0.11.0: The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md
added 849 packages, and audited 850 packages in 38s
64 packages are looking for funding
run `npm fund` for details
5 vulnerabilities (2 moderate, 3 high)
Some issues need review, and may require choosing
a different dependency.
Run `npm audit` for details.
npm notice
npm notice New major version of npm available! 8.11.0 -> 9.1.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.1.2
npm notice Run npm install -g npm@9.1.2 to update!
npm notice
前提条件
分類 | 環境 |
---|---|
PC | MacBook Air(M1, 2020) |
OS | macOS Monterey(バージョン12.3.1) |
nodebrew | ver 1.2.0 |
Node.js | v18.3.0(更新前) ※nodebrewでインストール |
npm | v8.11.0(更新前) |
nodebrew, Node.js, npmのバージョン確認は以下の通り。
% nodebrew -v
nodebrew 1.2.0
% node -v
v18.3.0
% npm -v
8.11.0
nodebrewによるNode.jsの最新化
nodebrew
を使用してNode.jsを最新化します。
(homebrew
でNode.jsをインストールしている場合はアンインストールして、同様の手順でインストールできるかと思います。)
手順の大まかな流れは以下の通りです。
- Node.jsのインストール可能な最新バージョンの確認
- バージョンを指定して、Node.jsのインストール
- インストールしたバージョンのNode.jsの有効化
実行手順
実際のコマンドは以下の通りです。
# 現在インストールされているバージョンの確認
nodebrew list
# インストール可能なバージョンの確認
nodebrew ls-remote
# バージョンを指定してのNode.jsのインストール
# (バージョンは上記の結果より指定)
nodebrew install-binary v19.1.0
# インストールされているバージョンの確認
nodebrew list
# インストールしたバージョンを有効(current)にする
nodebrew use v19.1.0
# インストール後のバージョン確認
nodebrew list
node -v
npm -v
実行結果例
以下は実際にコマンドを実行した結果となります。
% nodebrew list
v18.3.0
current: v18.3.0
% node -v
v18.3.0
% nodebrew install-binary v19.1.0
Fetching: https://nodejs.org/dist/v19.1.0/node-v19.1.0-darwin-arm64.tar.gz
########################################################################################################## 100.0%
Installed successfully
% nodebrew list
v18.3.0
v19.1.0
current: v18.3.0
% nodebrew use v19.1.0
use v19.1.0
% nodebrew list
v18.3.0
v19.1.0
current: v19.1.0
% node -v
v19.1.0
% npm -v
8.19.3
Node.jsについては想定通り最新のバージョンにアップグレードされました。
npmについては、npm install @vue/cli
の警告では、npmの最新バージョンは9.1.2
となっていましたが、それより古いバージョン8.19.3
となっています。
npm notice New major version of npm available! 8.11.0 -> 9.1.2
npmの最新化
Node.jsを最新化しただけでは、npmは最新化されていないようなので、npmを最新化します。
手順の大きな流れは以下となります。
- 最新バージョンの確認
- バージョンを指定してインストール
実行手順
実行するコマンドは以下の通りです。
# 最新バージョンの確認
npm info {パッケージ名} version
# 有効なバージョンの一覧
npm info {パッケージ名} versions
# バージョン指定してのインストール
npm install -g {パッケージ名}@{バージョン番号}
{パッケージ}は今回npm
ですので、実際に実行したコマンドは以下の通りです。
npm info npm version
npm info npm versions
npm install -g npm@9.1.2
npm -v
実行結果例
以下は実際にコマンドを実行した結果となります。
% npm info npm version
9.1.2
% npm info npm versions
[
'1.1.25', '1.1.70', '1.1.71', '1.2.19',
'1.2.20', '1.2.21', '1.2.22', '1.2.23',
'1.2.24', '1.2.25', '1.2.27', '1.2.28',
...(省略)
'8.19.1', '8.19.2', '8.19.3', '9.0.0-pre.0',
'9.0.0-pre.1', '9.0.0-pre.2', '9.0.0-pre.3', '9.0.0-pre.4',
'9.0.0-pre.5', '9.0.0-pre.6', '9.0.0', '9.0.1',
'9.1.0', '9.1.1', '9.1.2'
]
% npm install -g npm@9.1.2
removed 14 packages, changed 73 packages, and audited 223 packages in 1s
14 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
% npm -v
9.1.2
想定通りのバージョン9.1.2
にアップグレードされました。
Vue CLIインストール
再度Vue CLIをインストールしたところ、警告は出るものの、脆弱性やnpmのバージョンが古い警告は出力されなくなりました。
% npm install @vue/cli
npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated apollo-datasource@3.3.2: The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated apollo-server-plugin-base@3.7.1: The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated apollo-server-errors@3.3.1: The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated apollo-server-types@3.7.1: The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated apollo-server-express@3.11.1: The `apollo-server-express` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated apollo-server-env@4.2.1: The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated apollo-reporting-protobuf@3.3.3: The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
npm WARN deprecated subscriptions-transport-ws@0.11.0: The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md
npm WARN deprecated apollo-server-core@3.11.1: The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.
added 849 packages in 37s
64 packages are looking for funding
run `npm fund` for details
今回の記事は以上となります。
Discussion