livewire 如何使用三方包提供的 webworker
1. 运行环境
laravel 10.31.0
php 8.2.14
node v20.10
vite 4
monaco-editor 0.45.0
Ubuntu 22.04
开发环境
2. 问题
目前自己的一个项目开发环境中 vite输出前端资源端口为 5173 laravel 开发服务则使用 80 端口输出页面内容。
我想尝试使用 monaco-editor 来编辑 json 和 yaml 内容。碰到的问题是由于我采用的是 livewire 进行的混合模式开发,monaco-editor 提供的 webwoker 加载路径从 5173 端口输出,导致在开发环境跨域。
// bootstrips.js
import * as monaco from 'monaco-editor'
import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'
import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'
import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker'
import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker'
import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'
self.MonacoEnvironment = {
getWorker(_, label) {
if (label === 'json') {
return new jsonWorker()
}
if (label === 'css' || label === 'scss' || label === 'less') {
return new cssWorker()
}
if (label === 'html' || label === 'handlebars' || label === 'razor') {
return new htmlWorker()
}
if (label === 'typescript' || label === 'javascript') {
return new tsWorker()
}
return new editorWorker()
}
}
请问使用livewire混合开发模式碰到的这种 webworker 跨域问题,大家是如何解决的?
推荐文章: