]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
chore: fix plugins' UMD root variables names
authorNicolas Coden <nicolas@ncoden.fr>
Thu, 29 Nov 2018 23:21:38 +0000 (00:21 +0100)
committerNicolas Coden <nicolas@ncoden.fr>
Thu, 29 Nov 2018 23:21:38 +0000 (00:21 +0100)
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
gulp/utils.js

index d6452b6de9857b9c3dfd9c6b4d4fb946cf4b2282..e3d2b8e1f42cc55bb6eda36ffb62c45fb75b5b20 100644 (file)
@@ -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
index 66105afe63d4b8568d8ba954d667354a824d8594..91f402f50bb40761d5ca6c7848ecd43b64c5c525 100644 (file)
@@ -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.