CJSからESMへの移行

note, 11ty

環境

Eleventy v3.0.0

移行の際に変更する部分

package.json

-   "type": "commonjs",
+   "type": "module",

.eleventy.js

import
- const hoge = require("hoge");
+ import hoge from "hoge";

export
- module.exports = function (eleventyConfig) { ...
+ export default function (eleventyConfig) { ...
-  eleventyConfig.addCollection("gallery", () =>
-    require("./src/content/gallery_list/list.json")
-  );

+ import gallery from "./src/content/gallery_list/list.json" with/*or assert)*/ { type: "json" };
+ export default function (eleventyConfig) {
+    eleventyConfig.addCollection("gallery", () => gallery);

各テンプレート言語

- script src="script.js"
+ script type="module" src="script.js"

なお本ブログでは,次の Eleventy メジャーアップデートに合わせ ESM へ移行することを考えている,