From e5de2372c3350d58bf9f2f36e16f9387bc0ea009 Mon Sep 17 00:00:00 2001 From: nightwing Date: Tue, 15 Sep 2015 15:57:13 +0400 Subject: [PATCH] add recursive require.undef for sdk --- .../architect-build/build_support/mini_require.js | 14 +++++++++++++- plugins/c9.ide.plugins/loader.js | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/node_modules/architect-build/build_support/mini_require.js b/node_modules/architect-build/build_support/mini_require.js index 8d4c219c..7af78f24 100644 --- a/node_modules/architect-build/build_support/mini_require.js +++ b/node_modules/architect-build/build_support/mini_require.js @@ -282,7 +282,13 @@ config.packages = Object.create(null); config.paths = Object.create(null); config.baseUrl = ""; -require.undef = function(module, callback) { +require.undef = function(module, recursive) { + if (recursive) { + var root = (module + "/").replace("//", "/"); + $undefAll(root, define.errors); + $undefAll(root, define.loaded); + $undefAll(root, define.modules); + } module = normalizeName("", module); var path = require.toUrl(module, ".js"); delete define.errors[module]; @@ -291,6 +297,12 @@ require.undef = function(module, callback) { delete define.fetchedUrls[path]; }; +function $undefAll(module, hash) { + for (var i in hash) + if (i.lastIndexOf(module, 0) == 0) + require.undef(i); +} + require.MODULE_LOAD_URL = MODULE_LOAD_URL; require.toUrl = function(moduleName, ext, skipExt) { diff --git a/plugins/c9.ide.plugins/loader.js b/plugins/c9.ide.plugins/loader.js index 6d8791af..144c79e2 100644 --- a/plugins/c9.ide.plugins/loader.js +++ b/plugins/c9.ide.plugins/loader.js @@ -239,7 +239,7 @@ define(function(require, exports, module) { paths[config.packagePath] = config.staticPrefix; requirejs.config({ paths: paths }); - requirejs.undef([config.packagePath, "__installed__.js"].join("/")); + requirejs.undef(config.packagePath, true); require([[config.packagePath, "__installed__"].join("/")], function(installed) { callback(null, installed);