From 4a0c3eba4e6923bb98874278b1ea77b35aabe8c0 Mon Sep 17 00:00:00 2001 From: Ryan Gittings Date: Wed, 25 Mar 2020 12:29:57 +0000 Subject: [PATCH 1/2] Fix webpack issues --- dist/assets/src/js/main.js | 100 +++++++++++++++++++++++++++++++++++++ gulpfile.js | 45 +++++++++++------ package.json | 3 +- yarn.lock | 54 +++++++++----------- 4 files changed, 157 insertions(+), 45 deletions(-) create mode 100644 dist/assets/src/js/main.js diff --git a/dist/assets/src/js/main.js b/dist/assets/src/js/main.js new file mode 100644 index 0000000..045d6af --- /dev/null +++ b/dist/assets/src/js/main.js @@ -0,0 +1,100 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./assets/src/js/main.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./assets/src/js/main.js": +/*!*******************************!*\ + !*** ./assets/src/js/main.js ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var components = {};\nvar app = {\n init: function init() {\n Object.entries(components).forEach(function (component) {\n var key = component[0];\n var value = component[1];\n var nodes = document.querySelectorAll(\"[data-\".concat(key, \"]\"));\n nodes.forEach(function (node) {\n var options = node.getAttribute('data-options');\n\n if (options) {\n options = options.split(',').reduce(function (acc, cur) {\n var data = cur.split(':');\n var option1 = data[0];\n var option2 = data[1];\n acc[option1] = option2;\n return acc;\n }, {});\n }\n\n new value(node, options);\n });\n });\n }\n};\napp.init();\n\n//# sourceURL=webpack:///./assets/src/js/main.js?"); + +/***/ }) + +/******/ }); \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 200c924..2774bdb 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -26,20 +26,37 @@ const paths = { // Minify Javascript files $.gulp.task('scripts', function () { - return $.gulp.src(paths.scripts.src + '/main.js') - .pipe($.plumber()) - .pipe($.webpackStream({ - mode: 'production' - })) - .pipe($.sourcemaps.init()) - .pipe($.babel({ - presets: [ '@babel/env' ] - })) - .pipe($.concat('main.js')) - .pipe($.uglify()) - .pipe($.sourcemaps.write('.')) - .pipe($.gulp.dest(paths.scripts.dest)) - .pipe(browserSync.stream()); + const isProduction = (process.env.NODE_ENV === 'production'); + + const config = { + entry: `${paths.scripts.src}/main.js`, + output: { + filename: `${paths.scripts.src}/main.js`, + }, + mode: isProduction ? 'production' : 'development', + module: { + rules: [ + { + test: /^(?!.*\.{test,min}\.js$).*\.js$/, + exclude: /(node_modules)/, + use: { + loader: 'babel-loader', + options: { + presets: ['@babel/preset-env'], + }, + }, + }, + ], + }, + }; + + return new Promise(resolve => $.webpack(config, (err, stats) => { + if (err) console.log('Webpack', err); + + console.log(stats.toString({ /* stats options */ })); + + resolve(); + })); }); // Compiles sass into Assets diff --git a/package.json b/package.json index 3585262..77cfd97 100755 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "devDependencies": { "@babel/core": "^7.8.6", "@babel/preset-env": "^7.8.6", + "babel-loader": "^8.1.0", "browser-sync": "^2.26.7", "cssnano": "^4.1.10", "del": "^5.1.0", @@ -35,6 +36,6 @@ "gulp-sourcemaps": "^2.6.5", "gulp-uglify": "^3.0.2", "postcss-import": "^12.0.1", - "webpack-stream": "^5.2.1" + "webpack": "^4.42.1" } } diff --git a/yarn.lock b/yarn.lock index 1450f81..d77a830 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1080,7 +1080,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.10.2: +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0: version "6.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== @@ -1370,6 +1370,17 @@ axios@0.19.0: follow-redirects "1.5.10" is-buffer "^2.0.2" +babel-loader@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + dependencies: + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" + schema-utils "^2.6.5" + babel-plugin-dynamic-import-node@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" @@ -3225,7 +3236,7 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -fancy-log@^1.2.0, fancy-log@^1.3.2, fancy-log@^1.3.3: +fancy-log@^1.2.0, fancy-log@^1.3.2: version "1.3.3" resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== @@ -4872,7 +4883,7 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@^1.2.3: +loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -4899,11 +4910,6 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -lodash.clone@^4.3.2: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" - integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= - lodash.isfinite@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz#fb89b65a9a80281833f0b7478b3a5104f898ebb3" @@ -4914,11 +4920,6 @@ lodash.memoize@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= -lodash.some@^4.2.2: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= - lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -6781,6 +6782,14 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +schema-utils@^2.6.5: + version "2.6.5" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" + integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + seek-bzip@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" @@ -7355,7 +7364,7 @@ supports-color@^2.0.0: resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= -supports-color@^5.3.0, supports-color@^5.5.0: +supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -7990,22 +7999,7 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-list-map "^2.0.0" source-map "~0.6.1" -webpack-stream@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/webpack-stream/-/webpack-stream-5.2.1.tgz#35c992161399fe8cad9c10d4a5c258f022629b39" - integrity sha512-WvyVU0K1/VB1NZ7JfsaemVdG0PXAQUqbjUNW4A58th4pULvKMQxG+y33HXTL02JvD56ko2Cub+E2NyPwrLBT/A== - dependencies: - fancy-log "^1.3.3" - lodash.clone "^4.3.2" - lodash.some "^4.2.2" - memory-fs "^0.4.1" - plugin-error "^1.0.1" - supports-color "^5.5.0" - through "^2.3.8" - vinyl "^2.1.0" - webpack "^4.26.1" - -webpack@^4.26.1: +webpack@^4.42.1: version "4.42.1" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef" integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg== From c740a0df6c3d1b575258c12fc8ca5ceb89032301 Mon Sep 17 00:00:00 2001 From: Ryan Gittings Date: Wed, 25 Mar 2020 12:40:08 +0000 Subject: [PATCH 2/2] Fix paths --- gulpfile.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 2774bdb..729da3a 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -16,7 +16,7 @@ const paths = { scripts: { watch: ["./assets/src/js/**/*.js"], src: './assets/src/js', - dest: "./assets/js" + dest: "assets/js" }, assets: { src: ['./assets/src/img/**/*.+(png|jpg|jpeg|gif|svg)'], @@ -31,7 +31,8 @@ $.gulp.task('scripts', function () { const config = { entry: `${paths.scripts.src}/main.js`, output: { - filename: `${paths.scripts.src}/main.js`, + filename: 'main.js', + path: `${__dirname}/${paths.scripts.dest}`, }, mode: isProduction ? 'production' : 'development', module: {