diff --git a/esbuild.config.mjs b/esbuild.config.mjs index c152c6f8..7884f601 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -43,8 +43,10 @@ const bundleNames = [ ]; // Static assets that cannot be bundled (dynamic require, legacy -// server protocol, package not on npm). CSS files are also copied -// as static assets (bundling CSS is out of scope of this commit). +// server protocol, package not on npm). CSS files are copied into +// wwwroot/css/main/ (alongside the existing custom-styled versions +// of bootstrap, jquery-ui, etc., which are NOT touched by this +// toolchain). const staticAssets = [ { src: 'node_modules/@aspnet/signalr/dist/browser/signalr.min.js', @@ -54,29 +56,38 @@ const staticAssets = [ src: 'node_modules/moment/min/moment-with-locales.min.js', dst: 'moment-with-locales.min.js', }, + // Global vendor scripts (loaded by _Layout.cshtml before + // core.bundle.min.js). Kept as static assets instead of being + // bundled so jQuery, jQuery UI, Bootstrap, and the validation + // plugins are exposed on window (which esbuild IIFE bundles do + // NOT do for UMD-style modules like these). { - src: 'node_modules/bootstrap/dist/css/bootstrap.min.css', - dst: '../css/bootstrap.min.css', + src: 'node_modules/jquery/dist/jquery.min.js', + dst: 'jquery.min.js', }, { - src: 'node_modules/jquery-ui/dist/themes/base/jquery-ui.min.css', - dst: '../css/jquery-ui.min.css', + src: 'node_modules/jquery-ui/dist/jquery-ui.min.js', + dst: 'jquery-ui.min.js', }, { - src: 'node_modules/dropzone/dist/min/dropzone.min.css', - dst: '../css/dropzone.min.css', + src: 'node_modules/bootstrap/dist/js/bootstrap.bundle.min.js', + dst: 'bootstrap.bundle.min.js', }, { - src: 'node_modules/dropzone/dist/min/basic.min.css', - dst: '../css/dropzone-basic.min.css', + src: 'node_modules/jquery-validation/dist/jquery.validate.min.js', + dst: 'jquery.validate.min.js', + }, + { + src: 'node_modules/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js', + dst: 'jquery.validate.unobtrusive.min.js', }, { src: 'node_modules/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css', - dst: '../css/bootstrap-datetimepicker.min.css', + dst: '../css/main/bootstrap-datetimepicker.min.css', }, { src: 'node_modules/jquery-timepicker/jquery.timepicker.css', - dst: '../css/jquery.timepicker.css', + dst: '../css/main/jquery.timepicker.css', }, ]; diff --git a/src/Yavsc.Org/Views/Shared/_Layout.cshtml b/src/Yavsc.Org/Views/Shared/_Layout.cshtml index 7141dc63..5074dd78 100644 --- a/src/Yavsc.Org/Views/Shared/_Layout.cshtml +++ b/src/Yavsc.Org/Views/Shared/_Layout.cshtml @@ -7,9 +7,17 @@ - - - + + + + + + + + + @await RenderSectionAsync("header", false)