eclipse-langium / langium

Next-gen language engineering / DSL framework
https://langium.org/
MIT License
725 stars 65 forks source link

Error during setup: "initialize" is not exported by "node_modules/vscode/extensions.js" #1344

Closed medihack closed 8 months ago

medihack commented 8 months ago

Langium version: 2.1.3

Steps To Reproduce

I am using the Getting Started started instruction and end up with an error while generating the necessary files. I am using Ubuntu with the latest npm LTS.

  1. npm i -g yo generator-langium
  2. yo langium

The current behavior

The generator fails with an error message. Full error log below.

The expected behavior

The generator should succeed without an error.

Full error log

kai@xennea:~$ npm i -g yo generator-langium
npm WARN deprecated @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs

added 1153 packages in 56s

136 packages are looking for funding
  run `npm fund` for details
npm notice 
npm notice New minor version of npm available! 10.2.4 -> 10.3.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.3.0
npm notice Run npm install -g npm@10.3.0 to update!
npm notice 
kai@xennea:~$ yo langium
┌─────┐ ─┐
┌───┐    │  ╶─╮ ┌─╮ ╭─╮ ╷ ╷ ╷ ┌─┬─╮
│ ,´     │  ╭─┤ │ │ │ │ │ │ │ │ │ │
│╱       ╰─ ╰─┘ ╵ ╵ ╰─┤ ╵ ╰─╯ ╵ ╵ ╵
`                   ╶─╯

Welcome to Langium! This tool generates a VS Code extension with a "Hello World" language to get started quickly. The extension name is an identifier used in the extension marketplace or package registry.
? Your extension name: medtl
The language name is used to identify your language in VS Code. Please provide a name to be shown in the UI. CamelCase and kebab-case variants will be created and used in different parts of the extension and language server.
? Your language name: MedTL
Source files of your language are identified by their file name extension. You can specify multiple file extensions separated by commas.
? File extensions: .medtl
Your language can be run inside of a VSCode extension.
? Include VSCode extension? Yes
You can add CLI to your language.
? Include CLI? Yes
You can run the language server in your web browser.
? Include Web worker? Yes
   create medtl/langium-config.json
   create medtl/langium-quickstart.md
   create medtl/tsconfig.json
   create medtl/src/language/med-tl-module.ts
   create medtl/src/language/med-tl-validator.ts
   create medtl/src/language/med-tl.langium
   create medtl/.vscode/extensions.json
   create medtl/.vscode/tasks.json
   create medtl/.eslintrc.json
   create medtl/.gitignore
   create medtl/esbuild.mjs
   create medtl/language-configuration.json
   create medtl/src/extension/main.ts
   create medtl/src/language/main.ts
   create medtl/.vscode/launch.json
   create medtl/.vscodeignore
   create medtl/bin/cli.js
   create medtl/src/cli/cli-util.ts
   create medtl/src/cli/generator.ts
   create medtl/src/cli/main.ts
   create medtl/index.html
   create medtl/tsconfig.monarch.json
   create medtl/vite.bundle.config.ts
   create medtl/scripts/bundle.js
   create medtl/scripts/prepare.js
   create medtl/static/monacoClassic.html
   create medtl/static/monacoExtended.html
   create medtl/static/setup.js
   create medtl/static/setupClassic.js
   create medtl/static/setupExtended.js
   create medtl/static/styles.css
   create medtl/src/language/main-browser.ts
   create medtl/package.json

added 226 packages, and audited 227 packages in 32s

42 packages are looking for funding
  run `npm fund` for details

1 moderate severity vulnerability

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> medtl@0.0.1 langium:generate
> langium generate

Reading config from langium-config.json
src/language/med-tl.langium:14:10 - This rule is declared but never referenced.
src/language/med-tl.langium:15:10 - This rule is declared but never referenced.
Writing generated files to /home/kai/medtl/src/language/generated
Writing textmate grammar to /home/kai/medtl/syntaxes/med-tl.tmLanguage.json
Writing monarch grammar to /home/kai/medtl/syntaxes/med-tl.monarch.ts
Langium generator finished successfully in 173ms

> medtl@0.0.1 build
> tsc -b tsconfig.json && node esbuild.mjs

[00:04:20] Build succeeded

> medtl@0.0.1 build:web
> npm run build && npm run prepare:static && npm run build:monarch && npm run build:worker && npm run build:bundle

> medtl@0.0.1 build
> tsc -b tsconfig.json && node esbuild.mjs

[00:04:21] Build succeeded

> medtl@0.0.1 prepare:static
> node ./scripts/prepare.js

> medtl@0.0.1 build:monarch
> tsc -b tsconfig.monarch.json

> medtl@0.0.1 build:worker
> esbuild --minify ./out/language/main-browser.js --bundle --format=iife --outfile=./static/worker/med-tl-server-worker.js

  static/worker/med-tl-server-worker.js  552.3kb

⚡ Done in 112ms

> medtl@0.0.1 build:bundle
> vite --config ./vite.bundle.config.ts build

vite v4.4.12 building for production...
✓ 2165 modules transformed.
✓ built in 9.00s
"initialize" is not exported by "node_modules/vscode/extensions.js", imported by "node_modules/monaco-languageclient/lib/monaco-vscode-api-services.js".
file: /home/kai/medtl/node_modules/monaco-languageclient/lib/monaco-vscode-api-services.js:6:9
4:  * ------------------------------------------------------------------------------------------ */
5: import { ILogService, initialize, StandaloneServices } from 'vscode/services';
6: import { initialize as initializeVscodeExtensions } from 'vscode/extensions';
            ^
7: import getLanguagesServiceOverride from '@codingame/monaco-vscode-languages-service-override';
8: import getModelServiceOverride from '@codingame/monaco-vscode-model-service-override';
error during build:
RollupError: "initialize" is not exported by "node_modules/vscode/extensions.js", imported by "node_modules/monaco-languageclient/lib/monaco-vscode-api-services.js".
    at error (file:///home/kai/medtl/node_modules/rollup/dist/es/shared/node-entry.js:2287:30)
    at Module.error (file:///home/kai/medtl/node_modules/rollup/dist/es/shared/node-entry.js:13745:16)
    at Module.traceVariable (file:///home/kai/medtl/node_modules/rollup/dist/es/shared/node-entry.js:14175:29)
    at ModuleScope.findVariable (file:///home/kai/medtl/node_modules/rollup/dist/es/shared/node-entry.js:12615:39)
    at ReturnValueScope.findVariable (file:///home/kai/medtl/node_modules/rollup/dist/es/shared/node-entry.js:7124:38)
    at ChildScope.findVariable (file:///home/kai/medtl/node_modules/rollup/dist/es/shared/node-entry.js:7124:38)
    at Identifier.bind (file:///home/kai/medtl/node_modules/rollup/dist/es/shared/node-entry.js:8319:40)
    at CallExpression.bind (file:///home/kai/medtl/node_modules/rollup/dist/es/shared/node-entry.js:5892:23)
    at CallExpression.bind (file:///home/kai/medtl/node_modules/rollup/dist/es/shared/node-entry.js:9890:15)
    at AwaitExpression.bind (file:///home/kai/medtl/node_modules/rollup/dist/es/shared/node-entry.js:5892:23)
✖ An error occured while running langium:app#install
Error langium 

Command failed with exit code 1: npm run build:web

Also, npm run dev fails on the newly set up project. When I select a grammar definition (e.g. "MedTL + Monarch (Classic monaco-editor config)") I end up with:

[plugin:vite:import-analysis] Failed to resolve import "./bundle/index.js" from "static/setupClassic.js". Does the file exist?
/home/kai/medtl/static/setupClassic.js:1:89
1  |  import { addMonacoStyles, defineUserServices, MonacoEditorLanguageClientWrapper } from './bundle/index.js';
   |                                                                                          ^
2  |  import monarchSyntax from "../syntaxes/med-tl.monarch.js";
3  |  import { configureWorker } from './setup.js';
    at formatError (file:///home/kai/medtl/node_modules/vite/dist/node/chunks/dep-063880ad.js:44055:46)
    at TransformContext.error (file:///home/kai/medtl/node_modules/vite/dist/node/chunks/dep-063880ad.js:44051:19)
    at normalizeUrl (file:///home/kai/medtl/node_modules/vite/dist/node/chunks/dep-063880ad.js:41837:33)
    at async file:///home/kai/medtl/node_modules/vite/dist/node/chunks/dep-063880ad.js:41991:47
    at async Promise.all (index 0)
    at async TransformContext.transform (file:///home/kai/medtl/node_modules/vite/dist/node/chunks/dep-063880ad.js:41907:13)
    at async Object.transform (file:///home/kai/medtl/node_modules/vite/dist/node/chunks/dep-063880ad.js:44345:30)
    at async loadAndTransform (file:///home/kai/medtl/node_modules/vite/dist/node/chunks/dep-063880ad.js:55015:29)
    at async viteTransformMiddleware (file:///home/kai/medtl/node_modules/vite/dist/node/chunks/dep-063880ad.js:6441
medihack commented 8 months ago

Duplicate of #1315