From 6360e1ed500a9c4205d5c1de9c2115a9947bff2b Mon Sep 17 00:00:00 2001 From: Nicolas Coden Date: Wed, 21 Feb 2018 10:05:25 +0100 Subject: [PATCH] chore: export externals in a common namespace Export all externals in `__FOUNDATION_EXTERNAL__` to reduce the global namespace pollution. --- gulp/config.js | 2 ++ gulp/tasks/javascript.js | 11 +++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/gulp/config.js b/gulp/config.js index f691d6482..25a78c744 100644 --- a/gulp/config.js +++ b/gulp/config.js @@ -1,6 +1,8 @@ module.exports = { // Javascript + JS_BUNDLE_NAMESPACE: '__FOUNDATION_EXTERNAL__', + JS_FILES: [ 'js/foundation.core.js', 'js/foundation.util.core.js', diff --git a/gulp/tasks/javascript.js b/gulp/tasks/javascript.js index 3083eb5b4..8d2a6a1b4 100644 --- a/gulp/tasks/javascript.js +++ b/gulp/tasks/javascript.js @@ -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', } } -- 2.47.2