タグ CJS
人気順 10 users 50 users 100 users 500 users 1000 usersprocess.getBuiltinModule(id) は TypeScript を ESM 化させるか?
こんにちは teppeis です。普段は開発本部長をやってますが、ブログフェスに駆り出されました! 本日は Node v22.3.0 に続いて v20.16.0 にもバックポートされた process.getBuiltinModule(id) について解説します。 問題: 同期的な条件付き require を ESM 化できない Node v22 にて、フラグ付きで CJS (CommonJS Modul... 続きを読む
Node.jsに入る新しいCJSからESMへの読み込み方法の紹介 - hiroppy's site
新しくCJSとESMの間での解決方法が変わる提案が出てきました。 まだマージされてませんが、すでに複数の承認があり、この方針から変わることはないように見えるので紹介したいと思います。 module: support require()ing synchronous ESM graphs by joyeecheung · Pull Request #51977 · nodejs/node Summary This patch... 続きを読む
2023-12-08のJS: Redux 5.0.0、Vitest 1.0.0、Astro 4.0
JSer.info #672 - Redux Toolkit v2.0.0に関連してRedux 5.0.0がリリースされました。 Release v5.0.0 · reduxjs/redux Redux 5.0.0では、TypeScriptへの書き換え、CJS/ESMのdual packageに変更、ES2020形式で出力するように変更。 また、createStoreを非推奨として、Redux Toolkitへの移行を推奨しています。 Release v... 続きを読む
2023-12-01のJS: Node.js v18.19.0(LTS)、BiomeとPrettier、CSS Hooks
JSer.info #671 - Node.js v18.19.0がリリースされました。 Node v18.19.0 (LTS) | Node.js npm 10へアップデート、node:moduleにregister APIの追加、import.meta.resolveのサポートが追加されています。 また、.jsのデフォルトの扱いをCJSからESMへと変更できる--experimental-default-typeフラグがバックポートされて... 続きを読む
Deep Dive: Node.jsのESMデフォルト化への道
Node.js 21では --experimental-default-type=module フラグで、JavaScriptファイルのデフォルトの解釈をCJS(CommonJS)からESM(ECMAScript Modules)に変更できるようになっています。 Node.js 21 is now available! | Node.js これは、Node.jsにおいてJavaScriptファイル(.js)のデフォルトをESMに変更するための第一歩で... 続きを読む
社内で使う npm パッケージの作成に Deno を採用した話 - Cybozu Inside Out | サイボウズエンジニアのブログ
こんにちわ。フロントエンドエキスパートチームの@nus3_です。 最近、社内用の npm パッケージを作る必要があり、そのパッケージは依存が少なく、実装もシンプルだったので、npm パッケージの作成には Deno と dnt を採用しました。 dnt とは dnt は Deno で実装したモジュールを CJS、ESM に対応した npm パッケージに... 続きを読む
Deno + dntでCJS・ESMに対応したnpmパッケージを作ろう
3 行まとめ CJS、ESM に対応した npm パッケージが Deno + dntで簡単に作成できる Deno で開発できるので、Lint、Format、Test、TypeCheck が設定なしですぐに使える dntで作成した CJS、ESM のファイルに対して、それぞれ Node.js でもテストを実行してくれる Deno のモジュールを npm パッケージに変換するdnt Deno の... 続きを読む
TypeScriptのmoduleオプションの話、あるいはTypeScript開発者の苦悩、あるいはCJSとESMの話
皆さんこんにちは。早速ですが、TypeScriptのmoduleオプションはご存じでしょうか。moduleオプションは、例えば次のような値をサポートしています。 commonjs umd es2015 esnext node16 nodenext 皆さんは、moduleオプションが何を設定するオプションなのか一言で説明できますか? 実は、TypeScriptの熟練者であってもmo... 続きを読む
CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップか
Secretlint v7でCommonJS からES Modulesへの移行を行いました。 Secretlint v7.0.0をリリースしました。Pure ESMへの書き直し この記事では、CommonJS(CJS)からES Modules(ESM)への移行を行った経緯と、移行する方法について紹介します。 CJSからESMへの移行は、率直に言えば単調な作業で、メリットが見えにくい作業で... 続きを読む
eslint-cjs-to-esm: CJSをESMへとマイグレーションするツールを書いた
最近、色々なライブラリをCommonJS(CJS)からECMAScript Module(ESM)へとマイグレーションしています。 その際に、ESMでは__dirnameやrequireなどCommonJS特有の機能は使えなくなっています。 また、TypeScriptやBabelなど多くのツールはCJSではimport時に拡張子はなくても大丈夫ですが、ESMの場合はimport時に拡張子が必... 続きを読む
🌕 moonでのmonorepo管理とpackemonでのCJS/ESMのdual package
🌕 moonでのmonorepo管理とpackemonでのCJS/ESMのdual package 🌕 moon 一貫性を持ったmonorepo管理ツール for JavaScript ハッシュを使ったファイルキャッシュ プロジェクトのパッケージ間の依存関係の分析とタスク実行 Node.js/npmパッケージマネージャーのバージョン管理と一貫性 TypeScriptのProject Referendcesの... 続きを読む
Vite 3 が採用した CJS Proxy による Dual Package 構成
2022 年現在、Node.js 界隈は ESM (ES Module) への移行の過渡期であり、特に既存プロジェクトにおいては CJS (CommonJS) 構成であることがまだまだ多い。また、Pure ESM な npm パッケージは、CSJ プロジェクトからの利便性が悪く、dynamic import が必須で非同期化を強いられたり TypeScript の設定変更が必要だったり... 続きを読む
TypeScript 4.7 と Native Node.js ESM
TypeScript 4.7 がリリースされたので、Node.js ESM 対応の現状をまとめておく。 @teppeis さんの TypeScript 4.5 以降で ESM 対応はどうなるのか? を先に読んでおくと、以降の話も読み進めやすいかも。 このエントリの中でも、teppeis さんの定義した用語をそのまま用いさせてもらう。 * CommonJS (CJS): 従来式の Nod... 続きを読む
Node.js / Deno の徹底討論を Node 学園で行いました。 - from scratch
3/17 に徹底討論という形で denoland の 日野沢さん をお呼びして Node学園で徹底討論という形で討論しました。 いくつか面白いトピックがあり、参考になると幸いです。 少しだけ紹介します。 ESM vs CJS ESM と CJS の対応が Node.js がグダグダだと思っていると言われた点がありました。 討論内でも Twitter を見てい... 続きを読む
Native ESM + TypeScript 拡張子問題: 歯にものが挟まったようなスッキリしない書き流し
Node.jsのNative ESM対応は夢の機能ですが、夢を詰め込みすぎたせいかCJSからの移行を難しくしているポイントが依然として存在します。そのひとつが拡張子問題で、Node.jsのNative ESMではモジュールの拡張子を明示しなければいけなくなりました。 (これはWebブラウザの挙動に近づけるための判断だと考えられます。) 特... 続きを読む
Node.jsのECMAScript Modulesの紹介 - 技術探し
www.meetup.com ここで話したことの日本語版です。 blog.hiroppy.me ECMAScript Modulesとは? HTML 実装状況 ESM 特徴 ESM in Node.js なぜ時間がかかったのか? どのようにNode.jsではESMとCJSを判断し解決するか? .mjs ? Package Mode package.json .mjs と .cjs ルール WHATWG URLに準拠する 使用できない変数 明示... 続きを読む
Node.jsの新しいモジュール方式の実験的導入 - 技術探し
内容まとめ ESM事前知識 PR CoreへのPR 初期提案実装 リゾルバアルゴリズム 使用法 .mjsがエントリーポイントの場合 --entry-type package.jsonのtypeフィールド 特定ファイルのモジュール形式をロックしたい場合 Node.jsのCoreへESMとCJSの新しい方式が実験的フェイズ(stability: 1)として入ります。 ESM対応は安定化ま... 続きを読む
Node.jsとECMAScript Modules - 技術探し
2018 - 03 - 22 Node.jsとECMAScript Modules JavaScript Node tc39 Tweet 覚えておくべきこと ESMを使いたい場合は、拡張子を.mjsにする .mjsの拡張子は省略可能である ESMのファイルをトップレベルではCJSでインポート出来ない CJSのファイルをインポートするのにnamed importは行えない ESMのパスはwhatwg... 続きを読む
JavaScript モジュールの現状 | プロダクト・サービス | POSTD
最近、ESモジュールにおいて*.mjsをファイル拡張子として導入すると決めたNode.jsの現状について大騒ぎになっています。この記事では、実装の現状について、また、ESモジュール(ESM)への移行がNode.jsのエコシステムを傷つけないと私が考える理由について説明し、まとめます。ESM、CJS、UMD、AMD — どれを使うべき? 最近、 Twitter では、 ESモジュール の現状、特に... 続きを読む