見出し画像

node.jsのコマンドライン

https://nodejs.org/api/cli.html

2017年に、Node.js 8.9.0は、importおよびexport文で知られるECMAScriptモジュールの実験的なサポートを出荷しました。このサポートは、--experimental-modulesというフラグの背後にありました。

https://nodejs.medium.com/announcing-a-new-experimental-modules-1be8d2d6c2ff

それ以来、多くのことが起こりました。すべての主要なブラウザは、<script type="module"> を介して ECMAScript モジュール (ES モジュール) をサポートするようになりました。ES モジュールのソースを含む npm パッケージを <script type="module"> 経由でブラウザで使用できるようにするための様々なプロジェクトが立ち上がりました。Node.js風のパッケージ名をimport文でブラウザに表示するimport mapsがChromeでサポートされる予定です。

https://nodejs.medium.com/announcing-a-new-experimental-modules-1be8d2d6c2ff

プログラムのエントリポイントは、指定子のような文字列である。この文字列が絶対パスでない場合、現在の作業ディレクトリからの相対パスとして解決されます。そのパスは、CommonJSモジュールローダーによって解決される。対応するファイルが見つからない場合は、エラーがスローされます。

https://nodejs.org/api/cli.html

ファイルが見つかった場合、以下のいずれかの条件下で、そのパスがECMAScriptモジュールローダに渡される。

プログラムが、ECMAScript モジュールローダーでロードされるようにエントリーポイントを強制するコマンドラインフラグで開始された。
ファイルの拡張子が.mjsである。
ファイルが .cjs 拡張子を持っておらず、最も近い親の package.json ファイルが、値が "module" であるトップレベルの "type" フィールドを含んでいる。
それ以外の場合、ファイルはCommonJSモジュールローダーを使って読み込まれます。詳しくは、モジュールローダーを参照してください。

https://nodejs.org/api/cli.html

CommonJSモジュールは、Node.jsのためにJavaScriptコードをパッケージ化するオリジナルの方法です。Node.jsはブラウザや他のJavaScriptランタイムで使われているECMAScriptモジュール標準もサポートしています。

https://nodejs.org/api/modules.html#modules-commonjs-modules

Node.js は CommonJS モジュールシステムに従っており、ビルトインの require 関数は、別々のファイルに存在するモジュールをインクルードする最も簡単な方法です。requireの基本的な機能は、JavaScriptファイルを読み込み、そのファイルを実行し、exportsオブジェクトを返すことです。

https://nodejs.org/ja/knowledge/getting-started/what-is-require/

CommonJSモジュールのrequireは、参照するファイルを常にCommonJSとして扱います。
ESモジュールは非同期実行なので、ESモジュールをロードするためにrequireを使用することはサポートされていません。代わりに、import()を使用して、CommonJSモジュールからESモジュールをロードします。

https://nodejs.org/api/all.html#all_esm_require


お願い致します