これはなに
Node.js 18 がリリースされましたね!
変更の中には、node:test
というコアモジュールが追加されていたりしますが、そもそもnode:
ってなんなんだと思ったので、調べてみました。
node:
って何?
Node.js のコアモジュールをrequire
/ import
する際に、node:
プレフィックスをつけ、Node のコアモジュールであることを明示できるものです。
以下のような感じです。
// 以下2つは同じ
const fs = require("fs");
const fs = require("node:fs");
// 以下2つは同じ
import fs from "fs";
import fs from "node:fs";
Node.js のコアモジュールに対してつけることができ、 node:
をつけるつけないで動作は変わりません。
また、node:
プレフィックスは、Node.js 14 のマイナーバージョンアップによって追加されたようです。
node:
プレフィックスはつけたほうがいいのか?
結論、つけれるのであればつけたほうが良さそうです。
コアモジュールであることが明示的になるのもそうですが、Node.js 18 の変更点に含まれているnode:test
は node:
プレフィックスが必須 のモジュールです。
(初のnode:
プレフィックス必須のモジュールらしい)
https://nodejs.org/ja/blog/release/v18.0.0/
The node:test module facilitates the creation of JavaScript tests that report results in TAP format. To access it:
import test from 'node:test';
This module is only available under the node: scheme.
今後もnode:test
のようなモジュールが増えてくることを考えると、今から慣れておくのが良いかもしれません。
さいごに
調べてみると、かなり前からnode:
プレフィックスが存在していたようで、驚きました。
今回のnode:test
を期に、広まっていくといいですね。
Refs
- Node.js 18 リリースについて
-
node:
プレフィックス追加について -
require.cache
の動作について