vdesjs / vite-plugin-monaco-editor

A vite plugin for the Monaco Editor
MIT License
206 stars 36 forks source link

支持网站部署在二级路径下以及cdn模式下生成worker文件 #22

Open agileago opened 2 years ago

agileago commented 2 years ago
  1. 当部署在二级路径下,如何配置插件路径? 比如我设置 base:'/abc', 实际我是在nginx配置 /abc 转发到我的前端, 但这个时候如果配置插件的 publicPath: '/abc', 插件把worker生成在了 dist/abc目录下,实际应该把 /abc前缀删掉,生成在 dist 以及目录下

  2. 当把静态资源上传到cdn时,插件不生成worker文件了,无法上传到cdn,这个时候就访问不到worker文件了

资源路径应该是 vite.config.base + publicPath

agileago commented 2 years ago

具体可以看一下这个 https://github.com/agileago/vite-plugin-monaco-editor

gaoyujin commented 2 years ago

我跟你说一样的问题。我签个分支改下这个问吧。

NomadBin commented 2 years ago
  1. 当部署在二级路径下,如何配置插件路径? 比如我设置 base:'/abc', 实际我是在nginx配置 /abc 转发到我的前端, 但这个时候如果配置插件的 publicPath: '/abc', 插件把worker生成在了 dist/abc目录下,实际应该把 /abc前缀删掉,生成在 dist 以及目录下
  2. 当把静态资源上传到cdn时,插件不生成worker文件了,无法上传到cdn,这个时候就访问不到worker文件了

资源路径应该是 vite.config.base + publicPath

根据你遇到的两个问题,我增加了两个配置项:第一个是customDistPath回调函数,第二个是forceBuildCDN设置为true。

比如这样:

 monacoEditorPlugin({
      customDistPath: (root, buildOutDir, base) => {
        return path.join(root, buildOutDir);
      },
      publicPath: 'https://unpkg.com/vite-plugin-monaco-editor@1.0.5/cdn',
      forceBuildCDN: true

    })
peanut-cream commented 6 months ago

可以使用以下配置,修改存在二级路径时,把源码中的base去掉,如下: customDistPath(root, buildOutDir) { // 二级路由时,需要注意修改路径,不要使用base否则会找不到文件 return resolve(root, buildOutDir, 'monacoeditorwork'); },