var webpack2 = require('webpack');
var named = require('vinyl-named');
+var utils = require('../utils.js');
var ARGS = yargs.argv;
var FOUNDATION_VERSION = require('../../package.json').version;
var MODULE_LIST;
var VARIABLE_LIST;
-var WEBPACK_MODULE_CONFIG = {
- rules: [
- {
- test: /.js$/,
- use: [
- {
- loader: 'babel-loader'
- }
- ]
- }
- ]
-}
+var WEBPACK_CONFIG = {
+ externals: utils.umdExternals({
+ 'jquery': 'jQuery'
+ }),
+ module: {
+ rules: [
+ {
+ test: /.js$/,
+ use: [
+ {
+ loader: 'babel-loader'
+ }
+ ]
+ }
+ ]
+ },
+ output: {
+ libraryTarget: 'umd',
+ }
+};
// Load the configuration file for the customizer. It's a list of modules to load and Sass variables to override
gulp.task('customizer:loadConfig', function(done) {
gulp.task('customizer:javascript', ['customizer:javascript-entry'], function() {
return gulp.src(path.join(OUTPUT_DIR, 'js/vendor/foundation.js'))
- .pipe(webpackStream({externals: {jquery: 'jQuery'}, module: WEBPACK_MODULE_CONFIG}, webpack2))
+ .pipe(webpackStream(WEBPACK_CONFIG, webpack2))
.pipe(rename('foundation.js'))
.pipe(gulp.dest(path.join(OUTPUT_DIR, 'js/vendor')))
.pipe(uglify())
var webpack2 = require('webpack');
var named = require('vinyl-named');
+var utils = require('../utils.js');
var CONFIG = require('../config.js');
// ----- WEBPACK CONFIGURATION -----
// (just throw in foundation.js or foundation.min.js) or you should be using a build
// system.
-// Convert an external config object for UMD modules
-// See: https://webpack.js.org/configuration/externals/#object
-function umdExternals(externals, 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: umdExternalPath(options.namespace, externals[k]),
- amd: k,
- commonjs: k,
- commonjs2: k,
- };
- return obj;
- }, {});
-};
-
// Generate plugin Externals config for UMD modules
-const webpackExternalPlugins = Object.assign(
- umdExternals({
+var webpackExternalPlugins = Object.assign(
+ utils.umdExternals({
'jquery': 'jQuery',
}),
- umdExternals({
+ utils.umdExternals({
// Import path | Exported file
'./foundation.core': 'foundation.core',
'./foundation.core.utils': 'foundation.core',
}, { namespace: CONFIG.JS_BUNDLE_NAMESPACE })
);
-const webpackOutputAsExternal = {
+var webpackOutputAsExternal = {
library: [CONFIG.JS_BUNDLE_NAMESPACE, '[name]'],
libraryTarget: 'umd',
};
var webpackConfig = {
- externals: umdExternals({
+ externals: utils.umdExternals({
'jquery': 'jQuery'
}),
module: {
--- /dev/null
+function arrayClear(array) {
+ return array.filter(function (v) { return !!v });
+}
+
+// Convert an external config object for UMD modules
+// See: https://webpack.js.org/configuration/externals/#object
+module.exports.umdExternals = function(externals, options) {
+ options = Object.assign({ namespace: '' }, options);
+
+ return Object.keys(externals).reduce(function(obj, k) {
+ obj[k] = {
+ root: arrayClear([options.namespace, externals[k]]),
+ amd: k,
+ commonjs: k,
+ commonjs2: k,
+ };
+ return obj;
+ }, {});
+};
+