aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package-lock.json109
-rw-r--r--package.json3
-rw-r--r--webpack.dev.js27
3 files changed, 133 insertions, 6 deletions
diff --git a/package-lock.json b/package-lock.json
index 0a84121..de4bbf1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -122,7 +122,8 @@
"webpack": "^5.70.0",
"webpack-cli": "^4.10.0",
"webpack-dev-server": "^4.4.0",
- "webpack-merge": "5.4.0"
+ "webpack-merge": "5.4.0",
+ "webpack-notifier": "^1.15.0"
},
"engines": {
"node": ">=12"
@@ -8293,6 +8294,12 @@
"integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==",
"dev": true
},
+ "node_modules/growly": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
+ "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==",
+ "dev": true
+ },
"node_modules/handle-thing": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
@@ -10245,6 +10252,35 @@
"node": ">=0.10.0"
}
},
+ "node_modules/node-notifier": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz",
+ "integrity": "sha512-fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==",
+ "dev": true,
+ "dependencies": {
+ "growly": "^1.3.0",
+ "is-wsl": "^2.2.0",
+ "semver": "^7.3.2",
+ "shellwords": "^0.1.1",
+ "uuid": "^8.3.0",
+ "which": "^2.0.2"
+ }
+ },
+ "node_modules/node-notifier/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/node-releases": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz",
@@ -13666,6 +13702,12 @@
"node": ">= 0.10"
}
},
+ "node_modules/shellwords": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
+ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
+ "dev": true
+ },
"node_modules/side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
@@ -15674,6 +15716,24 @@
"node": ">=10.0.0"
}
},
+ "node_modules/webpack-notifier": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.15.0.tgz",
+ "integrity": "sha512-N2V8UMgRB5komdXQRavBsRpw0hPhJq2/SWNOGuhrXpIgRhcMexzkGQysUyGStHLV5hkUlgpRiF7IUXoBqyMmzQ==",
+ "dev": true,
+ "dependencies": {
+ "node-notifier": "^9.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "peerDependencies": {
+ "@types/webpack": ">4.41.31"
+ },
+ "peerDependenciesMeta": {
+ "@types/webpack": {
+ "optional": true
+ }
+ }
+ },
"node_modules/webpack-sources": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
@@ -21953,6 +22013,12 @@
"integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==",
"dev": true
},
+ "growly": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
+ "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==",
+ "dev": true
+ },
"handle-thing": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
@@ -23428,6 +23494,31 @@
"integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=",
"dev": true
},
+ "node-notifier": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz",
+ "integrity": "sha512-fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==",
+ "dev": true,
+ "requires": {
+ "growly": "^1.3.0",
+ "is-wsl": "^2.2.0",
+ "semver": "^7.3.2",
+ "shellwords": "^0.1.1",
+ "uuid": "^8.3.0",
+ "which": "^2.0.2"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
"node-releases": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz",
@@ -26052,6 +26143,12 @@
}
}
},
+ "shellwords": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
+ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
+ "dev": true
+ },
"side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
@@ -27624,6 +27721,16 @@
"wildcard": "^2.0.0"
}
},
+ "webpack-notifier": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.15.0.tgz",
+ "integrity": "sha512-N2V8UMgRB5komdXQRavBsRpw0hPhJq2/SWNOGuhrXpIgRhcMexzkGQysUyGStHLV5hkUlgpRiF7IUXoBqyMmzQ==",
+ "dev": true,
+ "requires": {
+ "node-notifier": "^9.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
"webpack-sources": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
diff --git a/package.json b/package.json
index d158f63..1209b41 100644
--- a/package.json
+++ b/package.json
@@ -134,7 +134,8 @@
"webpack": "^5.70.0",
"webpack-cli": "^4.10.0",
"webpack-dev-server": "^4.4.0",
- "webpack-merge": "5.4.0"
+ "webpack-merge": "5.4.0",
+ "webpack-notifier": "^1.15.0"
},
"babel": {
"presets": [
diff --git a/webpack.dev.js b/webpack.dev.js
index a401192..c0cee71 100644
--- a/webpack.dev.js
+++ b/webpack.dev.js
@@ -1,7 +1,26 @@
-const { merge } = require("webpack-merge");
-const common = require("./webpack.common.js");
+const { merge } = require('webpack-merge');
+const common = require('./webpack.common.js');
+const WebpackNotifierPlugin = require('webpack-notifier');
+const path = require('path');
+
+const statusesPaths = {
+ success: path.join(__dirname, 'public/assets/images/favicon-64x64.png'),
+ error: path.join(__dirname, 'public/assets/images/virtual.png'),
+};
module.exports = merge(common, {
- mode: "development",
- devtool: "eval",
+ mode: 'development',
+ devtool: 'eval',
+ plugins: [
+ new WebpackNotifierPlugin({
+ appID: 'Stud.IP Webpack',
+ title: function (params) {
+ return `Build status is ${params.status}`;
+ },
+ timeout: false,
+ hint: process.platform === 'linux' ? 'int:transient:1' : undefined,
+ excludeWarnings: true,
+ contentImage: statusesPaths,
+ }),
+ ],
});