mirror of
https://github.com/projectsend/projectsend.git
synced 2026-09-25 04:42:01 +00:00
Keep other people's warnings out of our users' consoles
React strips its own development warnings from a production build; several of our dependencies do not. Radix emits an accessibility warning for every dialog it considers underdescribed, and it was reaching anyone who opened devtools on a real installation — advice aimed at whoever builds the software, shown to whoever uses it. console.error is deliberately left in. Something has genuinely gone wrong when it fires, and a support conversation that opens with a real stack trace is worth more than a tidy console. Only the advisory levels are dropped, and only from production: npm run dev still shows everything, which is where those warnings are useful. The bundle goes from 12 console.log and 18 console.warn to none and two — the survivors being a Recharts truthiness guard and Uppy's logger object, neither of which speaks unless asked. What this does not do is fix what Radix was complaining about: sixteen of twenty-three dialogs have no description, which is a real accessibility gap and its own piece of work.
This commit is contained in:
+21
-2
@@ -5,7 +5,7 @@ import {
|
||||
} from 'vite';
|
||||
import tailwindcss from "@tailwindcss/vite";
|
||||
|
||||
export default defineConfig({
|
||||
export default defineConfig(({ mode }) => ({
|
||||
plugins: [
|
||||
laravel({
|
||||
input: ['resources/css/app.css', 'resources/js/app.tsx'],
|
||||
@@ -17,6 +17,25 @@ export default defineConfig({
|
||||
],
|
||||
esbuild: {
|
||||
jsx: 'automatic',
|
||||
|
||||
// Keep other people's development warnings out of our users'
|
||||
// consoles. React strips its own from a production build; several
|
||||
// of our dependencies do not — Radix emits an accessibility
|
||||
// warning on every dialog it considers underdescribed, and it
|
||||
// reaches anyone who opens devtools on a real installation. A
|
||||
// warning aimed at whoever is building the software is noise to
|
||||
// whoever is using it, and noise is where real errors go to hide.
|
||||
//
|
||||
// console.error is deliberately NOT in this list. Something has
|
||||
// genuinely gone wrong when it fires, and a support conversation
|
||||
// that starts with a real stack trace is worth more than a tidy
|
||||
// console. This only strips the levels that are advisory.
|
||||
//
|
||||
// Development is untouched: `npm run dev` still shows everything,
|
||||
// which is where those warnings are actually useful.
|
||||
pure: mode === 'production'
|
||||
? ['console.log', 'console.warn', 'console.info', 'console.debug', 'console.trace']
|
||||
: [],
|
||||
},
|
||||
resolve: {
|
||||
// Package pages (packages/*/resources/js) are loaded through a
|
||||
@@ -28,4 +47,4 @@ export default defineConfig({
|
||||
// path instead, whose ancestry does.
|
||||
preserveSymlinks: true,
|
||||
},
|
||||
});
|
||||
}));
|
||||
Reference in New Issue
Block a user