diff --git a/js/common/bootstrap/modules.js b/js/common/bootstrap/modules.js index 46f6a8855a..6c3fcb48be 100644 --- a/js/common/bootstrap/modules.js +++ b/js/common/bootstrap/modules.js @@ -647,7 +647,7 @@ function stop_color_print () { else { return null; } - } + } // first check: we are talking about module within a package description = internal.loadPackageFile(path, this._package); @@ -661,6 +661,18 @@ function stop_color_print () { } } + // check if already know a module with that name + module = GlobalPackage.module(path); + + if (module) { + if (module.type !== 'package') { + return module; + } + else { + return null; + } + } + // second check: we are talking about a global module description = internal.loadModuleFile(path); @@ -668,7 +680,7 @@ function stop_color_print () { module = this.createModule(description, 'module', GlobalPackage); if (module !== null) { - this._package.defineModule(path, module); + GlobalPackage.defineModule(path, module); return module; } } diff --git a/js/common/test-data/modules/node_modules/TestA/node_modules/TestB/package.json b/js/common/test-data/modules/node_modules/TestA/node_modules/TestB/package.json index 447071a2a9..feef150b15 100644 --- a/js/common/test-data/modules/node_modules/TestA/node_modules/TestB/package.json +++ b/js/common/test-data/modules/node_modules/TestA/node_modules/TestB/package.json @@ -1,5 +1,5 @@ { - "name": "B", + "name": "TestB", "description": "B", "main": "index", "version": "2.0.0" diff --git a/js/common/test-data/modules/node_modules/TestA/node_modules/TestC/package.json b/js/common/test-data/modules/node_modules/TestA/node_modules/TestC/package.json index b03bb8c694..38d619a2a4 100644 --- a/js/common/test-data/modules/node_modules/TestA/node_modules/TestC/package.json +++ b/js/common/test-data/modules/node_modules/TestA/node_modules/TestC/package.json @@ -1,5 +1,5 @@ { - "name": "C", + "name": "TestC", "description": "C", "main": "index", "version": "1.0.0" diff --git a/js/common/test-data/modules/node_modules/TestA/package.json b/js/common/test-data/modules/node_modules/TestA/package.json index 4d781bfde6..540ca52a9a 100644 --- a/js/common/test-data/modules/node_modules/TestA/package.json +++ b/js/common/test-data/modules/node_modules/TestA/package.json @@ -1,5 +1,5 @@ { - "name": "A", + "name": "TestA", "description": "A", "main": "index", "version": "1.0.0" diff --git a/js/common/test-data/modules/node_modules/TestB/package.json b/js/common/test-data/modules/node_modules/TestB/package.json index c71c4e3d7c..42428de3fb 100644 --- a/js/common/test-data/modules/node_modules/TestB/package.json +++ b/js/common/test-data/modules/node_modules/TestB/package.json @@ -1,5 +1,5 @@ { - "name": "B", + "name": "TestB", "description": "B", "main": "index", "version": "1.0.0" diff --git a/js/common/test-data/modules/node_modules/TestD/index.js b/js/common/test-data/modules/node_modules/TestD/index.js index 33b2d22cf4..d0525f7ddd 100644 --- a/js/common/test-data/modules/node_modules/TestD/index.js +++ b/js/common/test-data/modules/node_modules/TestD/index.js @@ -1 +1,2 @@ exports.version = "D 1.0.0"; +exports.fs = require("fs"); diff --git a/js/common/test-data/modules/node_modules/TestD/package.json b/js/common/test-data/modules/node_modules/TestD/package.json index 5e1206560e..3a578d28b1 100644 --- a/js/common/test-data/modules/node_modules/TestD/package.json +++ b/js/common/test-data/modules/node_modules/TestD/package.json @@ -1,5 +1,5 @@ { - "name": "D", + "name": "TestD", "description": "D", "main": "index", "version": "1.0.0"