diff --git a/package-lock.json b/package-lock.json index 94a1027e..0a01bd02 100644 --- a/package-lock.json +++ b/package-lock.json @@ -586,9 +586,9 @@ } }, "@dojo/webpack-contrib": { - "version": "5.0.0-alpha.7", - "resolved": "https://registry.npmjs.org/@dojo/webpack-contrib/-/webpack-contrib-5.0.0-alpha.7.tgz", - "integrity": "sha512-MTMfKZcAnq05uO0VKuo/0OB4RzvcyI0pmR1C+s2Rky/Fc9SKcaKalQp8XgHJSCq1tNEpiEdB+nszhktpK5JlOw==", + "version": "5.0.0-alpha.8", + "resolved": "https://registry.npmjs.org/@dojo/webpack-contrib/-/webpack-contrib-5.0.0-alpha.8.tgz", + "integrity": "sha512-aJbfRLZ+lqSrL2qtG05DCom7TLsUtJgLVArp3cqYzf0biqiL+Lz+pFmsoPMEbBHUxmXiuRacxliDi6qQQbq4KQ==", "requires": { "@dojo/framework": "^5.0.0-alpha.4", "acorn": "5.3.0", @@ -616,6 +616,7 @@ "source-map": "0.6.1", "ts-loader": "5.3.0", "typed-css-modules": "0.3.7", + "webpack-hot-middleware": "2.24.3", "workbox-webpack-plugin": "3.6.3", "wrapper-webpack-plugin": "2.0.0" }, @@ -1549,11 +1550,6 @@ "string-width": "^1.0.1" } }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" - }, "ansi-escapes": { "version": "3.1.0", "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", @@ -1925,7 +1921,7 @@ }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" }, "babel-plugin-transform-object-rest-spread": { @@ -2141,7 +2137,7 @@ }, "boxen": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/boxen/-/boxen-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-0.5.1.tgz", "integrity": "sha1-W3PYhA6388ihVcv2ntPtaNRyABQ=", "requires": { "camelcase": "^2.1.0", @@ -2161,7 +2157,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { "ansi-styles": "^2.2.1", @@ -2173,7 +2169,7 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } @@ -2491,7 +2487,7 @@ }, "camelcase-keys": { "version": "2.1.0", - "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "requires": { "camelcase": "^2.0.0", @@ -4163,7 +4159,7 @@ }, "d": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "requires": { "es5-ext": "^0.10.9" @@ -5194,6 +5190,28 @@ } } }, + "extra-watch-webpack-plugin": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/extra-watch-webpack-plugin/-/extra-watch-webpack-plugin-1.0.3.tgz", + "integrity": "sha512-ZScQdMH6hNofRRN6QMQFg+aa5vqimfBgnPXmRDhdaLpttT6hrzpY9Oyren3Gh/FySPrgsvKCNbx/NFA7XNdIsg==", + "requires": { + "glob": "^7.1.2", + "is-glob": "^4.0.0", + "lodash.uniq": "^4.5.0", + "schema-utils": "^0.4.0" + }, + "dependencies": { + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, "extract-zip": { "version": "1.6.7", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", @@ -7213,7 +7231,7 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "^3.0.2" @@ -7284,7 +7302,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "^3.0.2" @@ -14712,7 +14730,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { "ansi-styles": "^2.2.1", @@ -14724,7 +14742,7 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } @@ -14967,24 +14985,6 @@ } } }, - "webpack-dev-middleware": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz", - "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", - "requires": { - "memory-fs": "~0.4.1", - "mime": "^2.3.1", - "range-parser": "^1.0.3", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mime": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", - "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==" - } - } - }, "webpack-hot-middleware": { "version": "2.24.3", "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.24.3.tgz", @@ -14996,22 +14996,6 @@ "strip-ansi": "^3.0.0" } }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - } - } - }, "webpack-manifest-plugin": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.0.4.tgz", diff --git a/package.json b/package.json index b805f0ad..ca252ec2 100644 --- a/package.json +++ b/package.json @@ -114,6 +114,7 @@ "eventsource-polyfill": "0.9.6", "express": "4.16.2", "express-static-gzip": "1.1.3", + "extra-watch-webpack-plugin": "^1.0.3", "file-loader": "2.0.0", "globby": "7.1.1", "gzip-size": "4.1.0", diff --git a/src/base.config.ts b/src/base.config.ts index 70b03326..4fd40370 100644 --- a/src/base.config.ts +++ b/src/base.config.ts @@ -19,6 +19,7 @@ const IgnorePlugin = require('webpack/lib/IgnorePlugin'); const slash = require('slash'); const WrapperPlugin = require('wrapper-webpack-plugin'); const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'); +const ExtraWatchWebpackPlugin = require('extra-watch-webpack-plugin'); const basePath = process.cwd(); const srcPath = path.join(basePath, 'src'); @@ -168,6 +169,7 @@ export default function webpackConfigFactory(args: any): webpack.Configuration { ); const isTest = args.mode === 'unit' || args.mode === 'functional' || args.mode === 'test'; const singleBundle = args.singleBundle || isTest; + const watch = args.watch; let entry: any; if (singleBundle) { entry = { @@ -401,6 +403,10 @@ export default function webpackConfigFactory(args: any): webpack.Configuration { has: 'web-animations' } ] + }), + watch && + new ExtraWatchWebpackPlugin({ + files: ['!(output|.*)/**'] }) ]), module: { @@ -417,7 +423,7 @@ export default function webpackConfigFactory(args: any): webpack.Configuration { } }, { - test: /\.(css|js)$/, + test: /\.(css|js)/, issuer: indexHtmlPattern, loader: 'file-loader?hash=sha512&digest=hex&name=[name].[hash:base64:8].[ext]' }, diff --git a/test-app/package-lock.json b/test-app/package-lock.json index 024653a1..322bb3c6 100644 --- a/test-app/package-lock.json +++ b/test-app/package-lock.json @@ -29,9 +29,9 @@ } }, "@dojo/framework": { - "version": "5.0.0-alpha.3", - "resolved": "https://registry.npmjs.org/@dojo/framework/-/framework-5.0.0-alpha.3.tgz", - "integrity": "sha512-n6Cy3t7Zu65ceBM3UfqgBUmyM0F3JGUDIahMhXv4JKkXNaXSaUGuWDdBlRoH3LcEJDk6pj6ZV+J4JYiZ4IyPCQ==", + "version": "5.0.0-alpha.4", + "resolved": "https://registry.npmjs.org/@dojo/framework/-/framework-5.0.0-alpha.4.tgz", + "integrity": "sha512-nqF13sk3NtZNWrpRlhc51m+On50w9F0EEqVdSmO2TsFNSS4v40jhE+NYjgwp6V9pKg4GcA07H0mD78VkB1/sdg==", "requires": { "@types/cldrjs": "0.4.20", "@types/globalize": "0.0.34", @@ -402,7 +402,7 @@ }, "d": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "requires": { "es5-ext": "^0.10.9"