diff --git a/src/bin/tools/runPrettier.ts b/src/bin/tools/runPrettier.ts index 024d72c9..4423176b 100644 --- a/src/bin/tools/runPrettier.ts +++ b/src/bin/tools/runPrettier.ts @@ -52,10 +52,26 @@ export async function getPrettier(): Promise { // So we do a sketchy eval to bypass ncc. // We make sure to only do that when linking, otherwise we import properly. if (readThisNpmPackageVersion().startsWith("0.0.0")) { - eval( - `${symToStr({ prettier })} = require("${pathResolve(pathJoin(getNodeModulesBinDirPath({ packageJsonFilePath: undefined }), "..", "prettier"))}")` + const prettierDirPath = pathResolve( + pathJoin( + getNodeModulesBinDirPath({ packageJsonFilePath: undefined }), + "..", + "prettier" + ) ); + const isCJS = typeof module !== "undefined" && module.exports; + + if (isCJS) { + eval(`${symToStr({ prettier })} = require("${prettierDirPath}")`); + } else { + prettier = await new Promise(_resolve => { + eval( + `import("file:///${pathJoin(prettierDirPath, "index.mjs").replace(/\\/g, "/")}").then(prettier => _resolve(prettier))` + ); + }); + } + assert(!is(prettier)); break import_prettier;