diff --git a/tools/build-icons/cli.ts b/tools/build-icons/cli.ts index 2c9fce7ac..55c11290e 100755 --- a/tools/build-icons/cli.ts +++ b/tools/build-icons/cli.ts @@ -1,6 +1,7 @@ #!/usr/bin/env node import fs from 'fs'; import path from 'path'; +import { pathToFileURL } from 'url'; import getArgumentOptions from 'minimist'; import { readSvgDirectory } from '@lucide/helpers'; @@ -76,7 +77,9 @@ async function buildIcons() { const icons = await renderIconsObject(svgFiles, ICONS_DIR, renderUniqueKey); - const { default: iconFileTemplate } = await import(path.resolve(process.cwd(), templateSrc)); + const { default: iconFileTemplate } = await import( + pathToFileURL(path.resolve(process.cwd(), templateSrc)).href + ); const iconMetaData = await getIconMetaData(ICONS_DIR); @@ -135,4 +138,5 @@ try { await buildIcons(); } catch (error) { console.error(error); + process.exitCode = 1; } diff --git a/tools/build-icons/utils/getIconMetaData.ts b/tools/build-icons/utils/getIconMetaData.ts index d835bb8e5..e3c0d94f8 100644 --- a/tools/build-icons/utils/getIconMetaData.ts +++ b/tools/build-icons/utils/getIconMetaData.ts @@ -1,4 +1,5 @@ import path from 'path'; +import { pathToFileURL } from 'url'; import { readSvgDirectory } from '@lucide/helpers'; import { type IconMetadata } from '../types.ts'; @@ -7,7 +8,9 @@ async function getIconMetaData(iconDirectory: string): Promise { /** eslint-disable */ - const file = await import(path.join(iconDirectory, jsonFile), { with: { type: 'json' } }); + const file = await import(pathToFileURL(path.join(iconDirectory, jsonFile)).href, { + with: { type: 'json' }, + }); return [path.basename(jsonFile, '.json'), file.default]; }), );