]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
chore: export externals in a common namespace
authorNicolas Coden <nicolas@ncoden.fr>
Wed, 21 Feb 2018 09:05:25 +0000 (10:05 +0100)
committerNicolas Coden <nicolas@ncoden.fr>
Wed, 21 Feb 2018 09:05:25 +0000 (10:05 +0100)
Export all externals in `__FOUNDATION_EXTERNAL__` to reduce the global namespace pollution.

gulp/config.js
gulp/tasks/javascript.js

index f691d648272a7fa077a5a9c2a00612ce4d778c73..25a78c7444d6a89ae44b48358119555992da0ef2 100644 (file)
@@ -1,6 +1,8 @@
 module.exports = {
 
   // Javascript
+  JS_BUNDLE_NAMESPACE: '__FOUNDATION_EXTERNAL__',
+
   JS_FILES: [
     'js/foundation.core.js',
     'js/foundation.util.core.js',
index 3083eb5b466846e2c0cfca4e078a8f33ade44e57..8d2a6a1b4fc91e2f83af55e3b2917b6f2c172c8b 100644 (file)
@@ -8,8 +8,6 @@ var webpack2 = require('webpack');
 var named = require('vinyl-named');
 
 var CONFIG = require('../config.js');
-var BUNDLE_PREFIX = '__FOUNDATION_EXTERNALS_';
-var BUNDLE_SUFFIX = '__';
 
 // ----- WEBPACK CONFIGURATION -----
 //
@@ -22,11 +20,12 @@ var BUNDLE_SUFFIX = '__';
 // Convert an external config object for UMD modules
 // See: https://webpack.js.org/configuration/externals/#object
 function umdExternals(externals, options) {
-  options = Object.assign({ prefix: '', suffix: '' }, options);
+  options = Object.assign({ namespace: '' }, options);
+  const umdExternalPath = (...args) => [...args].filter(v => v && !!v.length);
 
   return Object.keys(externals).reduce(function(obj, k) {
     obj[k] = {
-      root: `${options.prefix}${externals[k]}${options.suffix}`,
+      root: umdExternalPath(options.namespace, externals[k]),
       amd: k,
       commonjs: k,
       commonjs2: k,
@@ -56,7 +55,7 @@ var pluginsAsExternals = Object.assign(
     './foundation.accordion': 'foundation.accordion',
     './foundation.tabs': 'foundation.tabs',
     './foundation.smoothScroll': 'foundation.smoothScroll',
-  }, { prefix: BUNDLE_PREFIX, suffix: BUNDLE_SUFFIX })
+  }, { namespace: CONFIG.JS_BUNDLE_NAMESPACE })
 );
 
 var webpackConfig = {
@@ -76,7 +75,7 @@ var webpackConfig = {
     ]
   },
   output: {
-    library: `${BUNDLE_PREFIX}[name]${BUNDLE_SUFFIX}`,
+    library: [CONFIG.JS_BUNDLE_NAMESPACE, '[name]'],
     libraryTarget: 'umd',
   }
 }