TypeFox / monaco-languageclient

Repo hosts npm packages for monaco-languageclient, vscode-ws-jsonrpc, monaco-editor-wrapper, @typefox/monaco-editor-react and monaco-languageclient-examples
https://www.npmjs.com/package/monaco-languageclient
MIT License
1.02k stars 176 forks source link

Uncaught TypeError: Cannot read properties of undefined (reading '_stub') #607

Closed 59wang closed 5 months ago

59wang commented 5 months ago

An error occurs when I initialize monaco-languageclient with the following code

import React from 'react';
import * as monaco from 'monaco-editor';
import { initServices, MonacoLanguageClient } from 'monaco-languageclient';
import type { MessageTransports } from 'vscode-languageclient';
import { CloseAction, ErrorAction } from 'vscode-languageclient';
import {toSocket, WebSocketMessageReader, WebSocketMessageWriter} from "vscode-ws-jsonrpc";
import { language as sqlLanguage } from 'monaco-editor/esm/vs/basic-languages/sql/sql';
import { useCallback, useEffect, useImperativeHandle, useRef } from 'react';
import 'monaco-editor/esm/vs/basic-languages/monaco.contribution.js';

const createLanguageClient = (transports: MessageTransports): MonacoLanguageClient => {
  return new MonacoLanguageClient({
    name: 'USQL',
    clientOptions: {
      documentSelector: ['mysql'],
      errorHandler: {
        error: () => ({ action: ErrorAction.Continue }),
        closed: () => ({ action: CloseAction.DoNotRestart }),
      },
      initializationOptions: {
        alias: 'galaxy',
        driver: 'mysql',
        dataSourceName: '',
        proto: 'tcp',
        user: 'root',
        passwd: '',
        host: '127.0.0.1',
        port: 3310,
        path: '',
        dbName: 'galaxy',
        params: {
          autocommit: 'true',
        },
      },
    },
    // create a language client connection from the JSON RPC connection on demand
    connectionProvider: {
      get: () => {
        return Promise.resolve(transports);
      },
    },
  });
};
chunk-R23KRZFG.js?v=6c1538de:903 
Uncaught TypeError: Cannot read properties of undefined (reading '_stub')
    at <static_initializer> (monaco-languageclient.js?v=6c1538de:12299:40)
    at monaco-languageclient.js?v=6c1538de:12295:25

20240221193009

And here is some version information in my package

"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.16 <1.84.0",
"monaco-languageclient": "^7.3.0-next.1",
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.16 <1.84.0",
"vscode-languageclient": "~9.0.1",
"vscode-oniguruma": "^2.0.1",
"vscode-textmate": "^9.0.0",
"vscode-ws-jsonrpc": "^3.0.0"
"overrides": {
  "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.16 <1.84.0",
  "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.16 <1.84.0"
},
"resolutions": {
  "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.16 <1.84.0",
  "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.16 <1.84.0"
},
kaisalmen commented 5 months ago

Hi @59wang if you can provide a reproducible example in a repository I may be able to help you. Thank you.

59wang commented 5 months ago

thanks for your reply, Now I have solved this problem, There is a compilation problem due to the following code in vite.config.ts Maybe conflict with the module vite-plugin-top-level-await

import topLevelAwait from 'vite-plugin-top-level-await';
export default defineConfig(({ mode }) => {
return {
  plugins: [
      topLevelAwait({
        promiseExportName: '__tla',
        promiseImportName: (i) => `__tla_${i}`,
      })
  ]
}
})