Skip to content
Performancewarn by defaultastro-doctor/no-unprocessed-script-surprises

no-unprocessed-script-surprises

Warn when script attributes opt out of Astro script processing.

Why

Astro bundles, deduplicates, TypeScript-processes, and may inline scripts with no attributes other than src. Unexpected attributes such as type, defer, async, or data-* opt out of that pipeline. Explicit is:inline scripts and JSON-LD data scripts are accepted because their processing opt-out is intentional.

Examples

Incorrect

Accidentally unprocessed script

astro
---
---
<script type="module">
  console.log('This is not processed by Astro')
</script>

Correct

Processed or explicitly inline script

astro
---
---
<script>
  console.log('Bundled, deduped, and processed by Astro')
</script>

<script is:inline>
  document.documentElement.dataset.theme = 'dark'
</script>

Configuration

Override the default severity in your ESLint config:

javascripteslint.config.js
// eslint.config.js
import astroDoctorPlugin from '@santi020k/eslint-plugin-astro-doctor'

export default [
  astroDoctorPlugin.configs.recommended,
  {
    rules: {
      'astro-doctor/no-unprocessed-script-surprises': 'error',   // or 'warn' or 'off'
    },
  },
]

Or in your doctor.config.ts:

typescriptdoctor.config.ts
export default {
  rules: {
    'astro-doctor/no-unprocessed-script-surprises': 'error',
  },
}

All rules