mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
@@ -43,37 +43,40 @@ function load(disableNodePathScan) {
|
||||
return loadModuleFiles(modules);
|
||||
}
|
||||
|
||||
function splitPath(p) {
|
||||
return path.posix.normalize((p || '').replace(/\\/g, path.sep)).split(path.sep)
|
||||
}
|
||||
|
||||
function loadModuleTypeFiles(module, type) {
|
||||
const things = module[type];
|
||||
var first = true;
|
||||
var promises = [];
|
||||
for (var thingName in things) {
|
||||
let first = true;
|
||||
const promises = [];
|
||||
for (let thingName in things) {
|
||||
/* istanbul ignore else */
|
||||
if (things.hasOwnProperty(thingName)) {
|
||||
if (module.name != "node-red" && first) {
|
||||
// Check the module directory exists
|
||||
first = false;
|
||||
var fn = things[thingName].file;
|
||||
var parts = fn.split("/");
|
||||
var i = parts.length-1;
|
||||
for (;i>=0;i--) {
|
||||
if (parts[i] == "node_modules") {
|
||||
break;
|
||||
}
|
||||
let moduleFn = module.path
|
||||
const fn = things[thingName].file
|
||||
const parts = splitPath(fn)
|
||||
const nmi = parts.indexOf('node_modules')
|
||||
if(nmi > -1) {
|
||||
moduleFn = parts.slice(0,nmi+2).join(path.sep);
|
||||
}
|
||||
if (!moduleFn) {
|
||||
// shortcut - skip calling statSync on empty string
|
||||
break; // Module not found, don't attempt to load its nodes
|
||||
}
|
||||
var moduleFn = parts.slice(0,i+2).join("/");
|
||||
|
||||
try {
|
||||
var stat = fs.statSync(moduleFn);
|
||||
const stat = fs.statSync(moduleFn);
|
||||
} catch(err) {
|
||||
// Module not found, don't attempt to load its nodes
|
||||
break;
|
||||
break; // Module not found, don't attempt to load its nodes
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
var promise;
|
||||
let promise;
|
||||
if (type === "nodes") {
|
||||
promise = loadNodeConfig(things[thingName]);
|
||||
} else if (type === "plugins") {
|
||||
@@ -82,8 +85,7 @@ function loadModuleTypeFiles(module, type) {
|
||||
promises.push(
|
||||
promise.then(
|
||||
(function() {
|
||||
var m = module.name;
|
||||
var n = thingName;
|
||||
const n = thingName;
|
||||
return function(nodeSet) {
|
||||
things[n] = nodeSet;
|
||||
return nodeSet;
|
||||
@@ -93,7 +95,6 @@ function loadModuleTypeFiles(module, type) {
|
||||
);
|
||||
} catch(err) {
|
||||
console.log(err)
|
||||
//
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user