Typescript

JS to TS

Change existing files to typescript

mv vite.config.js vite.config.ts
mv resources/js/app.js resources/js/app.ts
mv resources/js/bootstrap.js resources/js/bootstrap.ts

vite.config.ts

vite.config.ts
import { defineConfig } from 'vite'
import laravel from 'laravel-vite-plugin/dist'

export default defineConfig({
  resolve: {
    alias: {
      '@': '/resources/js',
      '~': '/',
    },
  },
  plugins: [
    laravel({
      input: [
        'resources/css/app.css',
        'resources/js/app.ts',
      ],
      refresh: true,
    }),
  ],
})

tsconfig.json

cat > tsconfig.json << EOF
{
  "compilerOptions": {
    "target": "esnext",
    "jsx": "preserve",
    "lib": ["esnext", "dom"],
    "module": "esnext",
    "moduleResolution": "node",
    "paths": {
      "@/*": ["./resources/js/*"],
      "@": ["./resources/js"],
      "~": ["./"],
      "~/*": ["./*"]
    },
    "resolveJsonModule": true,
    "types": ["vite/client", "resources/**/*.d.ts"],
    "strict": true,
    "noImplicitAny": false,
    "sourceMap": true,
    "esModuleInterop": true,
    "skipLibCheck": true
  },
  "include": [
    "resources/**/*.tsx",
    "resources/**/*.vue",
    "resources/**/*.d.ts",
    "resources/**/*.ts",
    "resources/**/*.tsx",
    "resources/**/*.vue",
    "*.d.ts",
    "components.d.ts",
    "auto-imports.d.ts",
    "global.d.ts"
  ]
}
EOF