2023-11-03
CJS to MJS
HP生成用のツールを保守・更新しました。
- prettier導入
- eslint導入
- commonjs → ES modules
- 変換ツールのsubmodule化
- 変換ツールの一部ファイルをコンテンツ管理側へ引越
ES module化では以下のような作業を行いました。
- package.jsonを
type: "module"
に設定 const xxx = require("abc");
をimport xxx from "abc/index.js";
に置換module.exports =
をexport default
に置換- 動的な
require
はすべてトップレベルに移動 - default exportがない, named exportがない怒られには個別対応
__dirname
や__filename
を削除- グローバル変数は
globalThis
でお茶を濁す
最初は単純置換でOKだと思っていましたが、読み込みの動作原理(よく知らない)の違いによるものなのか、意外と作業が多かったです。import構文には .js
が必要で、index.js
が省略できいない点が typescript
で学んだ構文と違っていたのでだるいです。内部の修正が必要なスクリプトもありました。初学の頃から作って保守しているツールなので、単体テストなんてものはありません。壊れていないことを祈っています。