laravel + inertia + vue3.2で
vueファイル内のスクリプトタグを<script setup lang="ts">
とすると
laravel-echoをimportしているファイルで
Module cannot などエラーが出るため対応。
予め、resources/js/@types
フォルダを作っておく。
tsconfig.jsonの設定
色々変えたのでどこが肝かわからないので一通り設定を記載する。
tsconfig.json
{
"compilerOptions": {
"target": "es2020",
"module": "commonjs",
"baseUrl": "./",
"typeRoots": [
"./resources/js/@types"
],
"types": [
"node"
],
"allowJs": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitAny": false,
"skipLibCheck": true
},
"include": [
"./resources/js/**/*"
]
}
window.Pusherとwindow.Echoを別のtsファイルでも使えるようにするため
resources/js/@types
フォルダにファイルglobal.d.ts
を作成する。
resources/js/@types/global.d.ts
interface Window {
Echo: any;
Pusher: any;
}
declare var window: Window;
これでとりあえずビルドも通ってlarave-echoのbroadcastの通知も来る。
他にいい方法がありそうだが。