タグ

esmに関するopparaのブックマーク (5)

  • .mjs とは何か、またはモジュールベース JS とエコシステムの今後 | blog.jxck.io

    Intro 長いこと議論になっていた ES Modules の Node における扱いに一応の決着が付き、 .mjs という拡張子が採択された。 この拡張子の意味と、今後ブラウザと合わせて Universal JS を実装していく上での作法が見えてきたことになる。 合わせてエコシステムが対応していくことで、長年の夢だった JS のモジュール化を進めていくことができるだろう。 ES Modules 徐々に揃いつつある ES Modules(ESM) の仕様は TC39 で行われており、その仕様については主に以下のような部分になる。 import や export と行った構文 module 内はデフォルト strict mode module でスコープを閉じる module 内の this は undefined etc 逆に以下は TC39 での策定範囲外となる どう Module を読

    .mjs とは何か、またはモジュールベース JS とエコシステムの今後 | blog.jxck.io
  • Node.js における ES Modules を理解する - 30歳からのプログラミング

    記事執筆時点での最新版の Node.js では、モジュールシステムとして ES Modules を使うことができる。 また、CommonJS で書かれたモジュールを ES Modules で読み込むこともできる。 Node.js のモジュールシステムは複雑すぎて苦手意識があったので、整理した。 この記事の内容は、Node.js のv14.7.0で動作確認している。 Node.js のモジュールシステムはバージョン毎に挙動が大きく変わるので、注意が必要。 そのファイルは CJS なのか ESM なのか Node.js で使えるモジュールシステムとして、ES Modules(以下、ESM)の他に CommonJS(以下、CJS)があり、CJS がデフォルトになっている。 Node.js におけるモジュールシステムを理解するためにはまず、Node.js が各ファイルをどのモジュールシステムとして

    Node.js における ES Modules を理解する - 30歳からのプログラミング
  • ES Modules形式をCommonJS形式でも利用できるようにする - Qiita

    YAMAP エンジニア Advent Calendar 2019 の12日目になります。 YAMAPで、フロントエンドエンジニア?として活動中の @issyxissy です。 フロントエンドエンジニアと言っても、他にもいろいろなことやっています。 YAMAPでは、Nuxt.js + Vue.jsを使ったフロントエンドの開発を行っています。 ( https://yamap.com をみていただければと〜) 最近、ちょっと悩んだことがあって、解決できたので、まとめてみました。 ケース Node.js と Vue.jsで、共通関数を使いたい・・・ 問題 Node.jsは、CommonJS 形式 (module.exports / require() ) Vue.js (ブラウザ環境) は、 ES Modules 形式 (export / import ) となるため、 共通関数をES Modul

    ES Modules形式をCommonJS形式でも利用できるようにする - Qiita
  • # CommonJS と ES6の import/export で迷うなら - Qiita

    はじめに いつもはes6のモジュール管理方式であるimport/export(ES modules)を使って、npmで手に入れたライブラリや自分で作成したモジュールをロードしているが、たまに思った挙動にならないことがある。また、export defaultしたモジュールをテストしようとしてkarmaでrequire()するとエラーになったりした。そういう場合は、とりあえずmodule.exportsを使ってみるとうまくいったりすることが多いのだが、なぜなのかはあまり考えていなかった。 ということで、実際にはどうなっているのか、またモジュールシステムとは何なのかという点で基的なことから理解を深めて、es6のimport/exportとの違いを知り、より正しく実装できるようになれば良いと思っている。 結論としては 方針としては基的にはES6形式で記述するが、CommonJS形式の読み書きが

    # CommonJS と ES6の import/export で迷うなら - Qiita
  • Node.jsライブラリ/ツールをESMに移行する[Node.js 12+]

    パッケージの移行 パッケージをESMなパッケージとして明示する方法は2つ .mjs の拡張子を使う package.json の type フィールドに module の値を設定する 基的にパッケージ単位で移行すると思うので、後者の package.json の "type": "module"を設定する。 この設定をすると、パッケージ内のJavaScriptがモジュールのコンテキストで実行されるようになる。 モジュールでは常にstrict modeとなり、Node.jsのESMではrequire、exports、__dirname、__filename などが利用できなくなる。 代わりに、ES2015+のimportとexport文がモジュール構文として利用できるようになる。 JavaScript モジュール - JavaScript | MDN Differences between

    Node.jsライブラリ/ツールをESMに移行する[Node.js 12+]
  • 1