From: Nicolas Coden Date: Wed, 21 Feb 2018 09:05:25 +0000 (+0100) Subject: chore: export externals in a common namespace X-Git-Tag: v6.6.0~3^2~259^2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6360e1ed5;p=thirdparty%2Ffoundation%2Ffoundation-sites.git chore: export externals in a common namespace Export all externals in `__FOUNDATION_EXTERNAL__` to reduce the global namespace pollution. --- 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', } }