You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
1.2 KiB
24 lines
1.2 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.rerouteModulesToProject = void 0;
|
|
// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
|
const path = require("path");
|
|
function rerouteModulesToProject(projectLocation, modulePrefixes) {
|
|
const Module = require("module");
|
|
const oldResolveLookupPaths = Module._resolveLookupPaths;
|
|
Module._resolveLookupPaths = function _resolveLookupPaths(request, parent, newReturn) {
|
|
const result = oldResolveLookupPaths(request, parent, newReturn);
|
|
//reroute @angular/cli includes to the project location
|
|
for (const prefix of modulePrefixes) {
|
|
if (request.startsWith(prefix)) {
|
|
const projectNodeModules = path.resolve(projectLocation, "node_modules");
|
|
return newReturn || result.length > 2 || (result.length === 2 && !Array.isArray(result[1]))
|
|
? [projectNodeModules]
|
|
: [result[0], [projectNodeModules]];
|
|
}
|
|
}
|
|
return result;
|
|
};
|
|
}
|
|
exports.rerouteModulesToProject = rerouteModulesToProject;
|