diff --git a/docs/architecture.md b/docs/architecture.md index 1464fc97da..98a9f8b406 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -138,7 +138,7 @@ In the early stages of the project, we [had some difficulties](https://dev.to/an Corresponding tasks are defined in the `package.json.scripts`: ```json { - "prebuild": "rm -rf build", + "prebuild": "node -e \"require('node:fs').rmSync('build', { recursive: true, force: true })\"", "build": "npm run build:js && npm run build:dts && npm run build:tests", "build:js": "node scripts/build-js.mjs --format=cjs --hybrid --entry=src/*.ts:!src/error.ts:!src/repl.ts:!src/md.ts:!src/log.ts:!src/globals-jsr.ts:!src/goods.ts && npm run build:vendor", "build:vendor": "node scripts/build-js.mjs --format=cjs --entry=src/vendor-*.ts --bundle=all --external='./internals.ts'", @@ -188,7 +188,7 @@ Static analyzers are responsible for code quality. ```json { "fmt:check": "prettier --check .", - "test:circular": "madge --circular src/*" + "test:circular": "madge --circular --extensions ts src" } ``` diff --git a/package.json b/package.json index 98dc3f67d8..7ed63b4103 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "scripts": { "fmt": "prettier --write .", "fmt:check": "prettier --check .", - "prebuild": "rm -rf build", + "prebuild": "node -e \"require('node:fs').rmSync('build', { recursive: true, force: true })\"", "build": "npm run build:versions && npm run build:js && npm run build:dts && npm run build:tests", "build:js": "node scripts/build-js.mjs --format=cjs --hybrid --entry='src/{cli,core,deps,globals,index,internals,util,vendor*}.ts' && npm run build:vendor", "build:vendor": "node scripts/build-js.mjs --format=cjs --entry=src/vendor-*.ts --bundle=all --external='./internals.ts'", @@ -93,7 +93,7 @@ "test:dcr": "node ./test/it/build-dcr.test.js", "test:unit": "node --experimental-transform-types ./test/all.test.js", "test:coverage": "c8 -c .nycrc --check-coverage npm run test:unit", - "test:circular": "madge --circular src/*", + "test:circular": "madge --circular --extensions ts src", "test:types": "tsd", "test:license": "node ./test/extra.test.js", "test:audit": "node scripts/npm-audit.js", diff --git a/scripts/build-js.mjs b/scripts/build-js.mjs index e7228ee935..b3cbec581c 100644 --- a/scripts/build-js.mjs +++ b/scripts/build-js.mjs @@ -16,6 +16,7 @@ import path from 'node:path' import fs from 'node:fs' +import { fileURLToPath } from 'node:url' import esbuild from 'esbuild' import { injectCode, injectFile } from 'esbuild-plugin-utils' import { nodeExternalsPlugin } from 'esbuild-node-externals' @@ -27,7 +28,7 @@ import esbuildResolvePlugin from 'esbuild-plugin-resolve' import minimist from 'minimist' import glob from 'fast-glob' -const __dirname = path.dirname(new URL(import.meta.url).pathname) +const __dirname = path.dirname(fileURLToPath(import.meta.url)) const argv = minimist(process.argv.slice(2), { default: { diff --git a/scripts/build-jsr.mjs b/scripts/build-jsr.mjs index 5975a51e23..dc0dcb04ea 100644 --- a/scripts/build-jsr.mjs +++ b/scripts/build-jsr.mjs @@ -14,7 +14,9 @@ import fs from 'node:fs' import path from 'node:path' -const __dirname = path.dirname(new URL(import.meta.url).pathname) +import { fileURLToPath } from 'node:url' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) const root = path.resolve(__dirname, '..') const pkgJson = JSON.parse( fs.readFileSync(path.resolve(root, 'package.json'), 'utf-8') diff --git a/scripts/build-pkgjson-lite.mjs b/scripts/build-pkgjson-lite.mjs index ec433df6c4..d866ff2604 100644 --- a/scripts/build-pkgjson-lite.mjs +++ b/scripts/build-pkgjson-lite.mjs @@ -16,9 +16,10 @@ import fs from 'node:fs' import path from 'node:path' +import { fileURLToPath } from 'node:url' import { depseekSync } from 'depseek' -const __dirname = path.dirname(new URL(import.meta.url).pathname) +const __dirname = path.dirname(fileURLToPath(import.meta.url)) const root = path.resolve(__dirname, '..') const source = 'package.json' const dest = 'package-lite.json' diff --git a/scripts/build-pkgjson-main.mjs b/scripts/build-pkgjson-main.mjs index 4786832b55..645507e3d4 100644 --- a/scripts/build-pkgjson-main.mjs +++ b/scripts/build-pkgjson-main.mjs @@ -16,8 +16,9 @@ import fs from 'node:fs' import path from 'node:path' +import { fileURLToPath } from 'node:url' -const __dirname = path.dirname(new URL(import.meta.url).pathname) +const __dirname = path.dirname(fileURLToPath(import.meta.url)) const root = path.resolve(__dirname, '..') const source = 'package.json' const dest = 'package-main.json' diff --git a/scripts/build-size-limit.mjs b/scripts/build-size-limit.mjs index f1ab224008..d73b77c17b 100644 --- a/scripts/build-size-limit.mjs +++ b/scripts/build-size-limit.mjs @@ -17,8 +17,9 @@ import fs from 'node:fs' import path from 'node:path' import { spawnSync } from 'node:child_process' +import { fileURLToPath } from 'node:url' -const root = path.resolve(new URL(import.meta.url).pathname, '../..') +const root = path.resolve(fileURLToPath(import.meta.url), '../..') const configPath = path.join(root, '.size-limit.json') const original = fs.readFileSync(configPath, 'utf8') const config = JSON.parse(original) diff --git a/scripts/build-tests.mjs b/scripts/build-tests.mjs index 35a773e5f5..9ad1150e86 100644 --- a/scripts/build-tests.mjs +++ b/scripts/build-tests.mjs @@ -16,6 +16,7 @@ import fs from 'node:fs' import path from 'node:path' +import { fileURLToPath } from 'node:url' import * as core from '../build/core.js' import * as cli from '../build/cli.js' import * as index from '../build/index.js' @@ -26,7 +27,7 @@ const modules = [ ['cli', cli], ['index', index], ] -const root = path.resolve(new URL(import.meta.url).pathname, '../..') +const root = path.resolve(fileURLToPath(import.meta.url), '../..') const filePath = path.resolve(root, `test/export.test.js`) const copyright = fs.readFileSync( diff --git a/scripts/build-versions.mjs b/scripts/build-versions.mjs index aea3e2a6bf..41e2a954a3 100644 --- a/scripts/build-versions.mjs +++ b/scripts/build-versions.mjs @@ -16,9 +16,10 @@ import fs from 'fs-extra' import path from 'node:path' +import { fileURLToPath } from 'node:url' import minimist from 'minimist' -const root = path.resolve(new URL(import.meta.url).pathname, '../..') +const root = path.resolve(fileURLToPath(import.meta.url), '../..') const copyright = fs.readFileSync( path.resolve(root, 'test/fixtures/copyright.txt'), 'utf8' diff --git a/test/extra.test.js b/test/extra.test.js index f74d82fe33..d9270b1364 100644 --- a/test/extra.test.js +++ b/test/extra.test.js @@ -14,9 +14,10 @@ import assert from 'node:assert' import { test, describe } from 'node:test' +import { fileURLToPath } from 'node:url' import { globby, fs, path } from '../build/index.js' -const __dirname = path.dirname(new URL(import.meta.url).pathname) +const __dirname = path.dirname(fileURLToPath(import.meta.url)) describe('extra', () => { test('every file should have a license', async () => { diff --git a/test/it/build-jsr.test.js b/test/it/build-jsr.test.js index 52bd1d6de9..de9dd8c04e 100644 --- a/test/it/build-jsr.test.js +++ b/test/it/build-jsr.test.js @@ -14,8 +14,9 @@ import { tempdir, $, path, fs } from '../../build/index.js' import { describe, before, after, it } from 'node:test' +import { fileURLToPath } from 'node:url' -const __dirname = path.dirname(new URL(import.meta.url).pathname) +const __dirname = path.dirname(fileURLToPath(import.meta.url)) const root = path.resolve(__dirname, '../../') describe('jsr artifact', () => {