mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
Make Npm.require import built-in modules first.
This commit is contained in:
@@ -1868,6 +1868,21 @@ class JsImage {
|
||||
// someone passes a Windows-y module identifier.
|
||||
name = name.split("\\").join("/");
|
||||
|
||||
let resolved;
|
||||
try {
|
||||
resolved = require.resolve(name);
|
||||
} catch (e) {
|
||||
error = error || e;
|
||||
}
|
||||
|
||||
if (resolved &&
|
||||
resolved === name &&
|
||||
! files.pathIsAbsolute(resolved)) {
|
||||
// If require.resolve(id) === id and id is not an absolute
|
||||
// identifier, it must be a built-in module like fs or http.
|
||||
return require(resolved);
|
||||
}
|
||||
|
||||
function tryLookup(nodeModulesPath, name) {
|
||||
var nodeModulesTopDir = files.pathJoin(
|
||||
nodeModulesPath,
|
||||
@@ -1896,19 +1911,13 @@ class JsImage {
|
||||
return require(fullPath);
|
||||
}
|
||||
|
||||
const resolved = require.resolve(name);
|
||||
if (appDir && resolved) {
|
||||
const isOutsideAppDir =
|
||||
files.pathRelative(appDir, resolved).startsWith("..");
|
||||
|
||||
if (resolved === name && ! files.pathIsAbsolute(resolved)) {
|
||||
// If require.resolve(id) === id and id is not an absolute
|
||||
// identifier, it must be a built-in module like fs or http.
|
||||
return require(resolved);
|
||||
}
|
||||
|
||||
const isOutsideAppDir = appDir &&
|
||||
files.pathRelative(appDir, resolved).startsWith("..");
|
||||
|
||||
if (! isOutsideAppDir) {
|
||||
return require(resolved);
|
||||
if (! isOutsideAppDir) {
|
||||
return require(resolved);
|
||||
}
|
||||
}
|
||||
|
||||
throw error || new Error(
|
||||
|
||||
Reference in New Issue
Block a user