diff --git a/amd-loader.js b/amd-loader.js index 6ac4a54..b84c42f 100644 --- a/amd-loader.js +++ b/amd-loader.js @@ -45,7 +45,7 @@ global.define = function (id, deps, factory) { return callback.apply(this, relativeId.map(req)) } - var chunks = relativeId.split("!"); + var chunks = relativeId.split("!").filter(chunk => chunk.length > 0); var prefix; if (chunks.length >= 2) { prefix = chunks[0]; diff --git a/test/node_modules/h!.js b/test/node_modules/h!.js new file mode 100644 index 0000000..a90cdc5 --- /dev/null +++ b/test/node_modules/h!.js @@ -0,0 +1,3 @@ +define(["exports", "moduleId!a"], function(exports, a) { + exports.A = a.A; +}); diff --git a/test/node_modules/i.js b/test/node_modules/i.js new file mode 100644 index 0000000..ddaeca7 --- /dev/null +++ b/test/node_modules/i.js @@ -0,0 +1,3 @@ +define(["exports", "h!"], function(exports, h) { + exports.A = h.A; +}); diff --git a/test/test.js b/test/test.js index 770b155..5401025 100644 --- a/test/test.js +++ b/test/test.js @@ -38,3 +38,11 @@ assert.equal(g.G, "G"); // TODO // node_modules + package // async require + +console.log("resolve the module name which includes '!'"); +var h = require("h!"); +assert.equal(h.A, "A"); + +var i = require("i"); +console.log("resolve the module name which ends with '!'"); +assert.equal(i.A, "A");