NodeJS v16 を JavaScript アクションのランタイムとして使用する
5481 ワード
今月は GitHub supported NodeJS v16 as runtime for JavaScript actions .また、supported by GitHub Enterprise Servers (GHES) 3.0 以降です.
The end-of-life of NodeJS v12 is the end of next April.そのため、独自の JavaScript アクションを維持する場合は、ランタイムを NodeJS v16 に移行することをお勧めします.
updating
NodeJS v16 では、ES2021 を使用できます. official TSConfig settings recommendation for NodeJS v16 に基づいて、次のように
TypeScript が古すぎて ES2021 を使用できない場合は、更新することをお勧めします.
TypeScript v4.4 changed the type of caught error from
したがって、アクションがエラーをキャッチして
TypeScript を更新した場合は、ESLint も更新する必要があります. official template project に基づいてプロジェクトを作成した場合は、次のコマンドを実行して、ESLint とそのプラグインをバッチでアップグレードできます.
ESLint 側の変更が原因で lint の失敗が見つかった場合は、 default
PATH でデフォルトの NodeJS を使用する場合は、GitHub hosted runners use NodeJS v16 by default since this Dec/10th のため、何もする必要はありません.
または、
NodeJS v12 はまもなくサポート終了になります. NodeJS で実行されているすべてのシステムを移行する必要があり、GitHub JavaScript アクションもターゲットに含まれています.
移行プロセスは非常に簡単です.メタデータを更新し、NodeJS v16 でビルドを実行するだけです.例として my PR for gradle/wrapper-validation-action を参照してください.楽しみ!
NodeJS v16 を使用する動機
The end-of-life of NodeJS v12 is the end of next April.そのため、独自の JavaScript アクションを維持する場合は、ランタイムを NodeJS v16 に移行することをお勧めします.
プロジェクトの更新方法
updating
run.using
in the actions.yml
file までに最小限の移行を完了できます.以下のようないくつかの追加の更新が必要になる場合があります.package.json の engine.node を更新する
package.json
で使用する NodeJS のバージョンを指定した場合は、それを更新する必要があります.16.13.1
は現在の最新バージョンであるため、推奨される構成は次のようになります. "engines": {
"node": "^16.13.1"
}
tsconfig.json を更新する
NodeJS v16 では、ES2021 を使用できます. official TSConfig settings recommendation for NodeJS v16 に基づいて、次のように
compilerOptions
を更新します. "compilerOptions": {
"lib": ["ES2021"],
"module": "commonjs",
"target": "ES2021"
}
TypeScript を更新する
TypeScript が古すぎて ES2021 を使用できない場合は、更新することをお勧めします.
TypeScript v4.4 changed the type of caught error from
any
to unknown
by default に注意してください.したがって、アクションがエラーをキャッチして
core.setFailed()
メソッドを呼び出す場合、実行時にキャッチされたオブジェクトのタイプを確認する必要があります.- core.setFailed(error)
+ if (error instanceof Error) {
+ core.setFailed(error)
+ } else {
+ core.setFailed(JSON.stringify(error))
+ }
ESLint の更新
TypeScript を更新した場合は、ESLint も更新する必要があります. official template project に基づいてプロジェクトを作成した場合は、次のコマンドを実行して、ESLint とそのプラグインをバッチでアップグレードできます.
$ npm add -D eslint@^8.5.0 @typescript-eslint/parser@^5.8.0 eslint-plugin-github@^4.3.5 eslint-plugin-jest@^25.3.0
ESLint 側の変更が原因で lint の失敗が見つかった場合は、 default
.eslintrc.json
from the template project をコピーするか、その GitHub Releases に記載されている ESLint の移行ガイドに従ってください.NodeJS v16 を使用するように GitHub Actions ワークフローを更新する
PATH でデフォルトの NodeJS を使用する場合は、GitHub hosted runners use NodeJS v16 by default since this Dec/10th のため、何もする必要はありません.
actions/setup-node
を使用して NodeJS のバージョンを指定する場合は、ワークフロー定義で node-version
構成を更新する必要があります.または、
.node-version
や .nvmrc
のような構成ファイルがある場合は、 node-version-file
config supported from v2.5.0
を使用できます.要約
NodeJS v12 はまもなくサポート終了になります. NodeJS で実行されているすべてのシステムを移行する必要があり、GitHub JavaScript アクションもターゲットに含まれています.
移行プロセスは非常に簡単です.メタデータを更新し、NodeJS v16 でビルドを実行するだけです.例として my PR for gradle/wrapper-validation-action を参照してください.楽しみ!
Reference
この問題について(NodeJS v16 を JavaScript アクションのランタイムとして使用する), 我々は、より多くの情報をここで見つけました https://dev.to/kengotoda/use-nodejs-v16-as-runtime-for-javascript-actions-me5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol