公式のブログ記事の中で、「Running package.json scripts」という項目で以下のように紹介されていた node --run <script-in-package-json>
という形式で package.json scripts を実行するというものを試してみます。
●Node.js — Node.js 22 is now available!
https://nodejs.org/en/blog/announcements/v22-release-announce#running-packagejson-scripts
上記以外に、以下の記事でも紹介がされていたりします。
●Node.js v22の主な変更点 - 別にしんどくないブログ
https://shisama.hatenablog.com/entry/2024/05/13/083000
これまでのやり方
これまでも npmコマンドを使った方法はありました。
例えば、以下の記事に書かれたようなことができます。
●scripts | npm Docs
https://docs.npmjs.com/cli/v10/using-npm/scripts
●Node.jsユーザーなら押さえておきたいnpm-scriptsのタスク実行方法まとめ - ICS MEDIA
https://ics.media/entry/12226/
実際に試してみる
それでは、Node.js v22 の新機能を使ったお試しです。
package.json の中に scripts として、以下の内容を追加します。
"scripts": {
"ws": "npx wscat -l 8080"
}
ここで使っているコマンドは、以前、以下の記事で書いていた内容の一部を流用しています。
●WebSocket のサーバー・クライアントをコマンドラインで簡単に実行する(npx と wscat) - Qiita
https://qiita.com/youtoy/items/72bbd5f6b0893756da36
以下のコマンドを実行することで、WebSocketサーバーを一時的に用意できるようになります。
$ node --run ws
上記を実行した後、以下の記事で書いていた WebSocketクライアントのプログラムを実行してみます。
●Node.js と ws でシンプルな WebSocketサーバー + Node.js v22 でフラグなしで使える WebSocket - Qiita
https://qiita.com/youtoy/items/9e1eeae728dc98f15679
その結果、以下のように WebSocket を使った通信を行えたことが確認できました。
現状、 node --run
を使うと「ExperimentalWarning: Task runner is an experimental feature and might change at any time」という Warning がでる状況のようです。
npm run を使った場合
以下のコマンドでサーバー側を用意した場合も試してみて、その結果を掲載しておきます。
$ npm run ws