LoginSignup
18
2

More than 1 year has passed since last update.

Nodeのコアモジュール名についている「node:」プレフィックスとは何か

Last updated at Posted at 2022-04-20

これはなに

Node.js 18 がリリースされましたね!

変更の中には、node:testというコアモジュールが追加されていたりしますが、そもそもnode:ってなんなんだと思ったので、調べてみました。

node:って何?

Node.js のコアモジュールをrequire / importする際に、node:プレフィックスをつけ、Node のコアモジュールであることを明示できるものです。
以下のような感じです。

CommonJS
// 以下2つは同じ
const fs = require("fs");
const fs = require("node:fs");
ESM
// 以下2つは同じ
import fs from "fs";
import fs from "node:fs";

Node.js のコアモジュールに対してつけることができ、 node:をつけるつけないで動作は変わりません

また、node:プレフィックスは、Node.js 14 のマイナーバージョンアップによって追加されたようです。

node:プレフィックスはつけたほうがいいのか?

結論、つけれるのであればつけたほうが良さそうです。

コアモジュールであることが明示的になるのもそうですが、Node.js 18 の変更点に含まれているnode:testnode:プレフィックスが必須 のモジュールです。
(初の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

18
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
2