Don't include "resolve" in @babel/standalone (#11432)

* Don't include "resolve" in @babel/standalone

* Also alias src
This commit is contained in:
Nicolò Ribaudo
2020-04-16 20:19:22 +02:00
committed by GitHub
parent 6b8f6ab2de
commit d9eb94327a
4 changed files with 43 additions and 28 deletions

View File

@@ -0,0 +1,7 @@
export default function(moduleName, dirname, absoluteRuntime) {
if (absoluteRuntime === false) return moduleName;
throw new Error(
"The 'absoluteRuntime' option is not supported when using @babel/standalone.",
);
}

View File

@@ -0,0 +1,30 @@
import path from "path";
import resolve from "resolve";
export default function(moduleName, dirname, absoluteRuntime) {
if (absoluteRuntime === false) return moduleName;
return resolveAbsoluteRuntime(
moduleName,
path.resolve(dirname, absoluteRuntime === true ? "." : absoluteRuntime),
);
}
function resolveAbsoluteRuntime(moduleName: string, dirname: string) {
try {
return path
.dirname(resolve.sync(`${moduleName}/package.json`, { basedir: dirname }))
.replace(/\\/g, "/");
} catch (err) {
if (err.code !== "MODULE_NOT_FOUND") throw err;
throw Object.assign(
new Error(`Failed to resolve "${moduleName}" relative to "${dirname}"`),
{
code: "BABEL_RUNTIME_NOT_FOUND",
runtime: moduleName,
dirname,
},
);
}
}