split webpack builds

This commit is contained in:
Matt Walsh
2026-04-18 14:03:06 -05:00
parent 89bf5e3f31
commit e37c58a0ab
9 changed files with 142 additions and 282 deletions

View File

@@ -36,12 +36,55 @@ const RESOURCES_PATH = './dist/resources';
const webpackOptions = {
mode: 'production',
output: {
filename: 'ws.min.js',
filename: '[name].min.js',
},
resolve: {
roots: ['./'],
},
devtool: 'source-map',
entry: {
index: {
import: './server/scripts/index.mjs',
dependOn: 'shared',
},
displays: {
import: [
'./server/scripts/modules/hazards.mjs',
'./server/scripts/modules/currentweather.mjs',
'./server/scripts/modules/almanac.mjs',
'./server/scripts/modules/spc-outlook.mjs',
'./server/scripts/modules/extendedforecast.mjs',
'./server/scripts/modules/hourly.mjs',
'./server/scripts/modules/hourly-graph.mjs',
'./server/scripts/modules/latestobservations.mjs',
'./server/scripts/modules/localforecast.mjs',
'./server/scripts/modules/radar.mjs',
'./server/scripts/modules/regionalforecast.mjs',
'./server/scripts/modules/travelforecast.mjs',
],
dependOn: 'shared',
},
features: {
import: [
'./server/scripts/modules/custom-scroll-text.mjs',
'./server/scripts/modules/currentweatherscroll.mjs',
'./server/scripts/modules/media.mjs',
],
dependOn: 'shared',
},
shared: [
'./server/scripts/modules/progress.mjs',
'./server/scripts/modules/settings.mjs',
'./server/scripts/modules/utils/setting.mjs',
'./server/scripts/modules/icons.mjs',
'./server/scripts/modules/utils/cache.mjs',
'./server/scripts/modules/utils/debug.mjs',
'./server/scripts/modules/utils/image.mjs',
'./server/scripts/modules/utils/metar.mjs',
'./server/scripts/modules/utils/mapclick.mjs',
'./server/scripts/modules/utils/units.mjs',
],
},
optimization: {
minimize: true,
minimizer: [
@@ -59,7 +102,6 @@ const webpackOptions = {
};
const jsVendorSources = [
'server/scripts/vendor/auto/nosleep.js',
'server/scripts/vendor/auto/swiped-events.js',
'server/scripts/vendor/auto/suncalc.js',
];

View File

@@ -7,7 +7,7 @@ const clean = () => deleteAsync(['./server/scripts/vendor/auto/**']);
const vendorFiles = [
'./node_modules/luxon/build/es6/luxon.mjs',
'./node_modules/luxon/build/es6/luxon.mjs.map',
'./node_modules/nosleep.js/dist/NoSleep.js',
'./node_modules/@zakj/no-sleep/dist/no-sleep.js',
'./node_modules/suncalc/suncalc.js',
'./node_modules/swiped-events/src/swiped-events.js',
];

16
package-lock.json generated
View File

@@ -16,6 +16,7 @@
"devDependencies": {
"@aws-sdk/client-cloudfront": "^3.609.0",
"@eslint/eslintrc": "^3.3.1",
"@zakj/no-sleep": "^0.13.6",
"ajv": "^8.17.1",
"del": "^8.0.0",
"eslint": "^9.0.0",
@@ -34,7 +35,6 @@
"gulp-terser": "^2.0.0",
"luxon": "^3.0.0",
"metar-taf-parser": "^9.0.0",
"nosleep.js": "^0.12.0",
"sass": "^1.54.0",
"suncalc": "^1.8.0",
"swiped-events": "^1.1.4",
@@ -2758,6 +2758,13 @@
"dev": true,
"license": "Apache-2.0"
},
"node_modules/@zakj/no-sleep": {
"version": "0.13.6",
"resolved": "https://registry.npmjs.org/@zakj/no-sleep/-/no-sleep-0.13.6.tgz",
"integrity": "sha512-w+qFH0bXuIWRggT9WqZW+dYrv2TXICA9m0a+tUZ1g8z4yuLxxaya3NCj8u9fHggm3R9AQIgt17R0FJwzhiCp3w==",
"dev": true,
"license": "MIT"
},
"node_modules/accepts": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
@@ -7529,13 +7536,6 @@
"node": ">=0.10.0"
}
},
"node_modules/nosleep.js": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz",
"integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==",
"dev": true,
"license": "MIT"
},
"node_modules/now-and-later": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz",

View File

@@ -29,6 +29,7 @@
"devDependencies": {
"@aws-sdk/client-cloudfront": "^3.609.0",
"@eslint/eslintrc": "^3.3.1",
"@zakj/no-sleep": "^0.13.6",
"ajv": "^8.17.1",
"del": "^8.0.0",
"eslint": "^9.0.0",
@@ -47,7 +48,6 @@
"gulp-terser": "^2.0.0",
"luxon": "^3.0.0",
"metar-taf-parser": "^9.0.0",
"nosleep.js": "^0.12.0",
"sass": "^1.54.0",
"suncalc": "^1.8.0",
"swiped-events": "^1.1.4",
@@ -60,4 +60,4 @@
"ejs": "^5.0.1",
"express": "^5.1.0"
}
}
}

View File

@@ -1,5 +1,7 @@
// track state of nosleep locally to avoid a null case error
// when nosleep.disable is called without first calling .enable
// eslint-disable-next-line import/extensions
import NoSleep from '../../vendor/auto/no-sleep.js';
let wakeLock = false;

77
server/scripts/vendor/auto/no-sleep.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -31,7 +31,10 @@
<% if (production) { %>
<link rel="stylesheet" type="text/css" href="resources/ws.min.css?_=<%=production%>" />
<script type="text/javascript" src="resources/vendor.min.js?_=<%=production%>"></script>
<script type="text/javascript" src="resources/ws.min.js?_=<%=production%>"></script>
<script type="text/javascript" src="resources/index.min.js?_=<%=production%>"></script>
<script type="text/javascript" src="resources/displays.min.js?_=<%=production%>"></script>
<script type="text/javascript" src="resources/features.min.js?_=<%=production%>"></script>
<script type="text/javascript" src="resources/shared.min.js?_=<%=production%>"></script>
<script type="text/javascript">
const OVERRIDES = <%- JSON.stringify(OVERRIDES ?? {}) %>;
</script>
@@ -41,7 +44,6 @@
<script type="text/javascript">
OVERRIDES = <%- JSON.stringify(OVERRIDES ?? {}) %>;
</script>
<script type="text/javascript" src="scripts/vendor/auto/nosleep.js"></script>
<script type="text/javascript" src="scripts/vendor/auto/swiped-events.js"></script>
<script type="text/javascript" src="scripts/vendor/auto/suncalc.js"></script>
<script type="module" src="scripts/modules/hazards.mjs"></script>

View File

@@ -12,7 +12,8 @@
"**/bower_components": true,
"**/node_modules": true,
"**/vendor": true,
"dist/**": true
"dist/**": true,
"package-lock.json": true,
},
"cSpell.enabledFileTypes": {
"markdown": true,
@@ -76,7 +77,8 @@
"source.fixAll.eslint": "explicit"
},
"cSpell.words": [
"hibyehihi"
"hibyehihi",
"zakj"
]
},
"extensions": {