From 4124057caa19e00241bca76447729b4e23a34982 Mon Sep 17 00:00:00 2001 From: Nicolas Coden Date: Fri, 30 Nov 2018 00:21:38 +0100 Subject: [PATCH] chore: fix plugins' UMD root variables names Use names without "./" when searching for modules as root variables (in module-less environments) to correctly match the generated root variables, which are the name of the file (without any prefix). --- gulp/tasks/javascript.js | 37 ++++++++++++++++++------------------- gulp/utils.js | 13 ++++++++----- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/gulp/tasks/javascript.js b/gulp/tasks/javascript.js index d6452b6de..e3d2b8e1f 100644 --- a/gulp/tasks/javascript.js +++ b/gulp/tasks/javascript.js @@ -29,29 +29,28 @@ var CONFIG = require('../config.js'); // See https://webpack.js.org/configuration/externals/#externals // var webpackExternalPlugins = Object.assign( + // | Module import path | External source names and paths utils.umdExternals({ - // Use the global jQuery object "jQuery" in module-less environments. 'jquery': { root: 'jQuery' }, }), utils.umdExternals({ - // Module import path | External source path/name - './foundation.core': './foundation.core', - './foundation.core.utils': './foundation.core', - './foundation.core.plugin': './foundation.core', - './foundation.util.imageLoader': './foundation.util.imageLoader', - './foundation.util.keyboard': './foundation.util.keyboard', - './foundation.util.mediaQuery': './foundation.util.mediaQuery', - './foundation.util.motion': './foundation.util.motion', - './foundation.util.nest': './foundation.util.nest', - './foundation.util.timer': './foundation.util.timer', - './foundation.util.touch': './foundation.util.touch', - './foundation.util.box': './foundation.util.box', - './foundation.dropdownMenu': './foundation.dropdownMenu', - './foundation.drilldown': './foundation.drilldown', - './foundation.accordionMenu': './foundation.accordionMenu', - './foundation.accordion': './foundation.accordion', - './foundation.tabs': './foundation.tabs', - './foundation.smoothScroll': './foundation.smoothScroll', + './foundation.core': { root: 'foundation.core', default: './foundation.core' }, + './foundation.core.utils': { root: 'foundation.core', default: './foundation.core' }, + './foundation.core.plugin': { root: 'foundation.core', default: './foundation.core' }, + './foundation.util.imageLoader': { root: 'foundation.util.imageLoader' }, + './foundation.util.keyboard': { root: 'foundation.util.keyboard' }, + './foundation.util.mediaQuery': { root: 'foundation.util.mediaQuery' }, + './foundation.util.motion': { root: 'foundation.util.motion' }, + './foundation.util.nest': { root: 'foundation.util.nest' }, + './foundation.util.timer': { root: 'foundation.util.timer' }, + './foundation.util.touch': { root: 'foundation.util.touch' }, + './foundation.util.box': { root: 'foundation.util.box' }, + './foundation.dropdownMenu': { root: 'foundation.dropdownMenu' }, + './foundation.drilldown': { root: 'foundation.drilldown' }, + './foundation.accordionMenu': { root: 'foundation.accordionMenu' }, + './foundation.accordion': { root: 'foundation.accordion' }, + './foundation.tabs': { root: 'foundation.tabs' }, + './foundation.smoothScroll': { root: 'foundation.smoothScroll' }, }, { // Search for the module in this global variable in module-less environments. namespace: CONFIG.JS_BUNDLE_NAMESPACE diff --git a/gulp/utils.js b/gulp/utils.js index 66105afe6..91f402f50 100644 --- a/gulp/utils.js +++ b/gulp/utils.js @@ -7,8 +7,9 @@ function arrayClear(array) { * * @param {string} name - name of the module, used if other no import path/name can be found. * @param {object|string} config - external configuration. - * If a path/name string, used as it. - * If an object, use the property within it according to the given `format`. + * - If a path/name string, used as it. + * - If an object, use the property within it according to the given `format`, + * or the "default" property. * @param {string} format - format of the module to look for, if the configuration is an object. * * @return The found import path/name for the module. @@ -17,8 +18,9 @@ function getUmdEntry(name, config, format) { if (typeof config === 'string') { return config; } - if (typeof config === 'object' && config[name]) { - return config[format]; + if (typeof config === 'object') { + if (config[format] != null) return config[format]; + if (config.default != null) return config.default; } return name; } @@ -30,7 +32,8 @@ function getUmdEntry(name, config, format) { * @param {object} externals - Configuration object for external UMD modules. * For each entry, a string or an object can be provided. * - If a string, it is used for all module formats. - * - If an object, it is used as is and the module name is used for missing formats. + * - If an object, it is used as is and the "default" property or the module + * name is used for missing formats. * @param {object} {} options- Additional options: * - namespace {string} '' - Global variable in which the modules must be * searched in instead of the root for module-less environments. -- 2.47.2