Open dolanmiu opened 2 years ago
Hello @dolanmiu, thank you for your report. Can you share the code you put into monaco, and the code that you used to mount monaco and attach the auto-typings plugin?
Very simple, but I pass my own version of monaco
const model = monaco.editor.createModel('', 'typescript', monaco.Uri.parse('inmemory://model/widget.tsx'));
model.updateOptions({ tabSize: 2 });
this.editor = monaco.editor.create(this.editorContainer.nativeElement, {
model,
language: 'typescript',
theme: 'vs-dark',
automaticLayout: true,
});
monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
...monaco.languages.typescript.typescriptDefaults.getCompilerOptions(),
// eslint-disable-next-line @typescript-eslint/no-explicit-any
jsx: 'react' as any,
lib: ['dom', 'esnext'],
});
this.autoTypings = await AutoTypings.create(this.editor, {
monaco,
sourceCache: storage, // Cache loaded sources in localStorage. May be omitted
onUpdate: (u, t) => {
if (u.type === 'StoredToCache' || u.type === 'LoadedFromCache') {
for (const origin of CONSUMER_SPA_ORIGINS) {
this.window.postMessage([t], origin);
}
}
},
onError: (e) => {
for (const origin of CONSUMER_SPA_ORIGINS) {
this.window.postMessage([e], origin);
}
},
});
Can you try to add the following to the compiler options:
moduleResolution: options.monaco.languages.typescript.ModuleResolutionKind.NodeJs,
allowSyntheticDefaultImports: true,
rootDir: options.fileRootPath,
and if you're not already doing that, maybe also try importing AutoTypings from monaco-editor-auto-typings/custom-editor
rather from monaco-editor-auto-typings
directly.
Can you try to add the following to the compiler options:
moduleResolution: options.monaco.languages.typescript.ModuleResolutionKind.NodeJs, allowSyntheticDefaultImports: true, rootDir: options.fileRootPath,
and if you're not already doing that, maybe also try importing AutoTypings from
monaco-editor-auto-typings/custom-editor
rather frommonaco-editor-auto-typings
directly.
applying these steps fixed it for me, without specifying rootDir
as I'm not sure where its value would come from.
I can see the models are there, but probably not attached to the editor or something?