From 38b3eecc8c84ed761604a15c3488cfaff6c417a4 Mon Sep 17 00:00:00 2001 From: anatawa12 Date: Tue, 6 Jan 2026 19:23:59 +0900 Subject: [PATCH] migrate build scripts to esmodules (#17071) * chore: migrate build scripts to esmodules * chore: do not use export default in build script --- package.json | 6 +++--- scripts/build-assets.mjs | 2 +- scripts/{build-pre.js => build-pre.mjs} | 5 ++++- scripts/{clean-all.js => clean-all.mjs} | 6 ++++-- scripts/{clean.js => clean.mjs} | 4 +++- scripts/tarball.mjs | 2 +- 6 files changed, 16 insertions(+), 9 deletions(-) rename scripts/{build-pre.js => build-pre.mjs} (89%) rename scripts/{clean-all.js => clean-all.mjs} (95%) rename scripts/{clean.js => clean.mjs} (94%) diff --git a/package.json b/package.json index 2601c4fc29..af9fb966aa 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "private": true, "scripts": { "compile-config": "cd packages/backend && pnpm compile-config", - "build-pre": "node ./scripts/build-pre.js", + "build-pre": "node scripts/build-pre.mjs", "build-assets": "node ./scripts/build-assets.mjs", "build": "pnpm build-pre && pnpm -r build && pnpm build-assets", "build-storybook": "pnpm --filter frontend build-storybook", @@ -48,8 +48,8 @@ "jest-and-coverage": "cd packages/backend && pnpm jest-and-coverage", "test": "pnpm -r test", "test-and-coverage": "pnpm -r test-and-coverage", - "clean": "node ./scripts/clean.js", - "clean-all": "node ./scripts/clean-all.js", + "clean": "node scripts/clean.mjs", + "clean-all": "node scripts/clean-all.mjs", "cleanall": "pnpm clean-all" }, "resolutions": { diff --git a/scripts/build-assets.mjs b/scripts/build-assets.mjs index 0cfce02fef..1086d5a25a 100644 --- a/scripts/build-assets.mjs +++ b/scripts/build-assets.mjs @@ -7,7 +7,7 @@ import * as fs from 'node:fs/promises'; import * as path from 'node:path'; import { fileURLToPath } from 'node:url'; import * as yaml from 'js-yaml'; -import buildTarball from './tarball.mjs'; +import { buildTarball } from './tarball.mjs'; const configDir = fileURLToPath(new URL('../.config', import.meta.url)); const configPath = process.env.MISSKEY_CONFIG_YML diff --git a/scripts/build-pre.js b/scripts/build-pre.mjs similarity index 89% rename from scripts/build-pre.js rename to scripts/build-pre.mjs index a90d53c75d..23c2d08042 100644 --- a/scripts/build-pre.js +++ b/scripts/build-pre.mjs @@ -3,7 +3,10 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -const fs = require('fs'); +import * as fs from 'node:fs'; + +const __dirname = import.meta.dirname; + const packageJsonPath = __dirname + '/../package.json' function build() { diff --git a/scripts/clean-all.js b/scripts/clean-all.mjs similarity index 95% rename from scripts/clean-all.js rename to scripts/clean-all.mjs index e669eb2885..424a9c405a 100644 --- a/scripts/clean-all.js +++ b/scripts/clean-all.mjs @@ -3,8 +3,10 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -const { execSync } = require('child_process'); -const fs = require('fs'); +import { execSync } from 'note:child_process'; +import * as fs from 'note:fs'; + +const __dirname = import.meta.dirname; (async () => { fs.rmSync(__dirname + '/../packages/backend/built', { recursive: true, force: true }); diff --git a/scripts/clean.js b/scripts/clean.mjs similarity index 94% rename from scripts/clean.js rename to scripts/clean.mjs index c1dd5b99f5..3f632289a1 100644 --- a/scripts/clean.js +++ b/scripts/clean.mjs @@ -3,7 +3,9 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -const fs = require('fs'); +import * as fs from 'note:fs'; + +const __dirname = import.meta.dirname; (async () => { fs.rmSync(__dirname + '/../packages/backend/built', { recursive: true, force: true }); diff --git a/scripts/tarball.mjs b/scripts/tarball.mjs index d1fe4de4f5..dc6ee07773 100644 --- a/scripts/tarball.mjs +++ b/scripts/tarball.mjs @@ -19,7 +19,7 @@ const ignore = [ // Exclude files you don't want to include in the tarball here ]; -export default async function build() { +export async function buildTarball() { const mkdirPromise = mkdir(resolve(cwd, 'built', 'tarball'), { recursive: true }); const pack = new Pack({ cwd, gzip: true }); const patterns = await walk({ path: cwd, ignoreFiles: ['.gitignore'] });