これはなに
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の動作について