インストールしたNode.jsモジュールが実行できなかったときの対処メモ

2022/1/04

(最終更新: 2022/8/18

アイキャッチ画像

はじめに

Node.jsのモジュール、gatsby-cliをインストールしたが、利用できない(gatsby --helpなどのコマンドを打つとエラーが出る)状態になってしまった。

対処法をメモ。

結論:バージョンを上げる。

発生したエラー

以下のコマンドでモジュールをインストールし、

$ npm install -g gatsby-cli

以下のコマンドでgatsbyコマンドを実行しようとすると、エラーが発生した。

$ gatsby -help

エラーの内容は以下。

/home/vagrant/.nvm/versions/node/v10.14.2/lib/node_modules/gatsby-cli/node_modules/gatsby-telemetry/lib/telemetry.js:39
  store = new _eventStorage.EventStorage();
        ^

SyntaxError: Unexpected token =
    at new Script (vm.js:79:7)
    at createScript (vm.js:251:10)
    at Object.runInThisContext (vm.js:303:10)
    at Module._compile (internal/modules/cjs/loader.js:657:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)

対処した内容

調べてみると、Node.jsのバージョンが古いときに、上記のエラーになることがあるとわかった。

バージョンを確認すると

$ node -v
v10.14.2

v10.14.2であることがわかった。

参考資料

バージョンの確認方法は、以下の記事を参照。

Node.jsのインストール方法メモ

Node.jsのインストール方法メモ

Node.jsのインストールを実施したので方法をメモ。

https://bunsugi.com/node-js-install

以下コマンドで、公式の最新バージョンを確認。

$ nvm ls-remote
...省略...
       v16.11.1
       v16.12.0
       v16.13.0   (LTS: Gallium)
       v16.13.1   (Latest LTS: Gallium)
        v17.0.0
        v17.0.1
        v17.1.0
        v17.2.0
        v17.3.0

最新のLTS(Long Term Support)バージョンはv16.13.1とのことなので

$ nvm install 16.13.1

でNode.jsをインストールし直した。

npmも古いですよの警告が出たため、npmも最新版に更新。

警告

npm notice New minor version of npm available! 8.1.2 -> 8.3.0

npmを最新に更新

$ npm install -g npm@8.3.0

改めてモジュールの実行を試みると、問題なく実行できた。

$ gatsby --help
╔════════════════════════════════════════════════════════════════════════╗
║                                                                        ║
║   Gatsby collects anonymous usage analytics                            ║
║   to help improve Gatsby for all users.                                ║
║                                                                        ║
║   If you'd like to opt-out, you can use `gatsby telemetry --disable`   ║
║   To learn more, checkout https://gatsby.dev/telemetry

おわりに

Node.jsは1年以上前にインストールしてそのままになっていたので、古くなってしまっていた。

モジュールによってはNode.jsのバージョンが古いと使えないものがあるとわかった。



個別連絡はこちらへ→Twitterお問い合わせ

プロフィール

プロフィールイメージ

はち子

事業会社のシステム部門で働きはじめて5年目の会社員。システム企画/要件定義/システムアーキテクチャ等。

Twitter→@bun_sugi

過去の記事について

はてなブログに掲載の記事(主にプログラミングメモ)についてはこちらに掲載しております。(本ブログに移行中)

タグ一覧

関連記事

Copyright© 2023, エンジニアを目指す日常ブログ

お問い合わせ|プライバシーポリシー