theia-ide / theia-apps Goto Github PK
View Code? Open in Web Editor NEWTheia applications examples - docker images, desktop apps, packagings
License: Apache License 2.0
Theia applications examples - docker images, desktop apps, packagings
License: Apache License 2.0
When I try to open files in Theia, each time it fails and I get this exception in the frontend:
reflection_utils.js:33 Uncaught (in promise) Error: The number of constructor arguments in the derived class t must be >= than the number of constructor arguments of its base class.
at u (reflection_utils.js:33)
at Object.t.getDependencies (reflection_utils.js:11)
at planner.js:106
at Array.forEach (<anonymous>)
at e (planner.js:94)
at Object.t.plan (planner.js:129)
at container.js:316
at e._get (container.js:309)
at e.get (container.js:228)
at e.editorProvider (monaco-frontend-module.ts:53)
This is from freshly built images on my machine - I have not tried with the image deployed on dockerhub.
Tried also with the more basic theia-docker image, and that one does not seem to have that issue. Maybe related to the yangster extension?
It's great to see the Docker for Python added. I've tried it and it works well. However, it is for Python2 only currently. Can we add support of Python3?
Will Theia support Vim Keybinds? This is a feature that almost all popular text editors support. It is essential to Vim users.
Latest and next theia-desktop app should be added. The auto build should be provided whenever a new @theia/core latest or next version is published.
I would like to propose the creation of build image specifically for Openshift to build/develop Theia. Openshift does not allow root access by default to containers/pods. This means adding in Python and other development tools can be a little harder https://github.com/theia-ide/theia-apps/blob/master/theia-docker/Dockerfile#L2 . This image would allow for further development and execution within Theia IDE. It would also open a development port (3001 ?) to attach the development Theia server to. We did something similar for che (che-in-che). If acceptable, I can issue a PR.
Really to do this a little easier the current Theia docker image could be broken out. https://github.com/theia-ide/theia-apps/blob/master/theia-docker/Dockerfile#L1-L5 could be an image called 'theiaide/theia-build'. This would save time on compile time too and be DRY. The 'theiaide/theia' dockerfile would then be:
FROM theiaide/theia-build
ADD $version.package.json ./package.json
RUN yarn && \
yarn theia build && \
rm -rf ./node_modules/electron && \
yarn cache clean
FROM node:8-alpine
RUN apk add --no-cache git openssh bash
WORKDIR /home/theia
COPY --from=0 /home/theia /home/theia
EXPOSE 3000
ENV SHELL /bin/bash
ENV USE_LOCAL_GIT true
ENTRYPOINT [ "yarn", "theia", "start", "/home/project", "--hostname=0.0.0.0" ]
theiaide/theia-build
FROM node:8-alpine
RUN apk add --no-cache make gcc g++ python
ARG version=latest
WORKDIR /home/theia
.... Also FROM node:8-alpine ; RUN apk add --no-cache git openssh bash
could be put into another Dockerfile too called maybe 'theiaide/theia-runtime'. Basically anywhere you need to download from an external source.
UPDATE: Wrote an article/blog at https://medium.com/@james_devcomb/theia-in-theia-78921a907531
It seems that including @theia/ruby:latest
has broken the coloring (fixed in @theia/ruby:next
). I had already seen this issue in the theia-ruby:latest
.
exception:
root ERROR Could not initialize contribution TypeError: e.registerTextMateGrammarScope is not a function
at e.registerTextmateLanguage (http://localhost:3003/bundle.js:116:1039721)
at e.initialize (http://localhost:3003/bundle.js:30:434805)
at e.<anonymous> (http://localhost:3003/bundle.js:12:181216)
at http://localhost:3003/bundle.js:12:176949
at Object.next (http://localhost:3003/bundle.js:12:177054)
at http://localhost:3003/bundle.js:12:175967
at new Promise (<anonymous>)
at a (http://localhost:3003/bundle.js:12:175744)
at e.startContributions (http://localhost:3003/bundle.js:12:180996)
at e.<anonymous> (http://localhost:3003/bundle.js:12:178033)
We can either remove ruby from latest.package.json
or leave it and wait for the next release, September 27th.
I try docker build of master branch (9865ec2).
Get:1 http://apt.llvm.org/xenial llvm-toolchain-xenial InRelease [4218 B]
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Hit:3 http://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
Hit:4 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:5 http://apt.llvm.org/xenial llvm-toolchain-xenial/main amd64 Packages [8910 B]
Get:6 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
Get:7 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [79.0 kB]
Get:8 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]
Get:9 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [431 kB]
Get:10 http://archive.ubuntu.com/ubuntu xenial-updates/universe Sources [253 kB]
Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [979 kB]
Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [800 kB]
Fetched 2862 kB in 5s (563 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package clang-tools-6.0
E: Couldn't find any package by glob 'clang-tools-6.0'
E: Couldn't find any package by regex 'clang-tools-6.0'
The command '/bin/sh -c apt-get update && apt-get install -y clang-tools-6.0' returned a non-zero code: 100
Not found package the clang-tools-6.0.
The full and go images do not build since yesterday evening. Looks like the issue is with a golang library that is downloaded as part of the build of these images. I do not know if this is a temporary issue or not.
github.com/golang/lint (download)
package github.com/golang/lint/golint: code in directory /home/theia/go/src/github.com/golang/lint/golint expects import "golang.org/x/lint/golint"
The command '/bin/sh -c go get -u -v github.com/ramya-rao-a/go-outline && go get -u -v github.com/acroca/go-symbols && go get -u -v github.com/nsf/gocode && go get -u -v github.com/rogpeppe/godef && go get -u -v golang.org/x/tools/cmd/godoc && go get -u -v github.com/zmb3/gogetdoc && go get -u -v github.com/golang/lint/golint && go get -u -v github.com/fatih/gomodifytags && go get -u -v github.com/uudashr/gopkgs/cmd/gopkgs && go get -u -v golang.org/x/tools/cmd/gorename && go get -u -v sourcegraph.com/sqs/goreturns && go get -u -v github.com/cweill/gotests/... && go get -u -v golang.org/x/tools/cmd/guru && go get -u -v github.com/josharian/impl && go get -u -v github.com/haya14busa/goplay/cmd/goplay && go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct' returned a non-zero code: 1
so that we get coloring for html, xml, ...
theia images should run on user mode via USER
+ a RUN
command that adds the user.
There are a couple of factors why it should be done like this:
The Theia docker image is pretty big. When I dug into it, there's 335Mb in the Yarn cache that is pulled in during build and then never used again. I've found some other projects that have added "&& yarn clear cache" to their docker builds, which would clean this up and reduce the image size by 335Mb.
Also noticed the --production=true flag while I was investigating this, not sure if that would speed up the build or remove unnecessary dependencies too.
Cole Mickens: @akosyakov (had a problem with my docker invocation), I'm still seeing this: "Error: "Cannot apply @Injectable decorator multiple times." but I don't really see any other message, just a stack trace that looks not-so-helpful.
marcdumais-work: Hi, I think it's the yang extension causing the issue with the full image. @colemickens you can temporarily remote that one from next.package.json and rebuild the image.
related to theia-ide/yangster#59
cc: @marcdumais-work
This is a mirror of eclipse-theia/theia#2307.
Currently, I used the full package.json
from theia-ide/theia-apps for my Theia image, and this happened both at latest and next
Further looking at the backend logs - it seems to be at fault at extension manager, caused by electron.js
.
ATM we build the image, and if the build succeeds, we assume that all is good. It would very helpful to have even a basic test suite, run to validate that e.g. both front-end and back-end can start. Then we can build on that.
A quick win could be to consider the full image first. It's the one with the most extensions, so probably the most likely to have some issue, e.g. one "external" Theia extension is not up-to-date following an internal API change, can prevent the FE app from starting.
Might we be able to run the existing example application UI test suite against the image, after it's built on Travis?
We have too many jobs running in parallel, one GH token is not enough. We should rather use several as secrets in travis file or break down jobs to several stages to avoid running all them together.
log from stdout
`
yarn run v1.9.4
warning Skipping preferred cache folder "/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1066760000".
$ /home/theia/node_modules/.bin/theia start /home/project --hostname=0.0.0.0
Starting server worker...
Server worker has been started. [ID: 1 | PID: 38]
Failed to start the backend application.
{ Error: Cannot find module '@theia/debug/lib/node/debug-model'
at Function.Module._resolveFilename (module.js:548:15)
at Function.Module._load (module.js:475:25)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object. (/home/theia/node_modules/@theia/cpp/lib/node/cpp-backend-module.js:20:21)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3) code: 'MODULE_NOT_FOUND' }
/home/theia/node_modules/@theia/core/lib/node/cluster/main.js:58
throw reason;
^
Error: Cannot find module '@theia/debug/lib/node/debug-model'
at Function.Module._resolveFilename (module.js:548:15)
at Function.Module._load (module.js:475:25)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object. (/home/theia/node_modules/@theia/cpp/lib/node/cpp-backend-module.js:20:21)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
Server worker has been disconnected. [ID: 1 | PID: 38]
Server worker failed to start within 5000 milliseconds.
Pass a greater value as '--startup-timeout' option to increase the timeout or a negative to disable.
Done in 1.24s.
`
Yangster is currently dockerized using an automatic build on Docker Hub.
We should move this here to get the same results as for the other apps.
Clean yarn cache as remove electron as in the theia-docker image
See for the guidance: #14 (comment)
Can you add Theia Docker for Python?
Would there be a way to build the theia-openshift image, so that the theia-docker image, from the same PR, is used as a base? This way we would notice it right away, if a change in the base image, impacts the build of the theia-openshift image.
log:
yarn run v1.9.4
warning Skipping preferred cache folder "/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1066760000".
$ /home/theia/node_modules/.bin/theia start /home/project --hostname=0.0.0.0
Starting server worker...
Server worker has been started. [ID: 1 \ PID: 38]
Error: @PostConstruct error in class TypeScriptContribution: EACCES: permission denied, open '/home/theia/.application-module-loader.js'
at _postConstruct (/home/theia/node_modules/inversify/lib/resolution/instantiation.js:30:19)
at Object.resolveInstance (/home/theia/node_modules/inversify/lib/resolution/instantiation.js:47:5)
at /home/theia/node_modules/inversify/lib/resolution/resolver.js:72:42
at /home/theia/node_modules/inversify/lib/resolution/resolver.js:34:24
at Array.map ()
at /home/theia/node_modules/inversify/lib/resolution/resolver.js:32:34
at Object.resolve (/home/theia/node_modules/inversify/lib/resolution/resolver.js:96:12)
at /home/theia/node_modules/inversify/lib/container/container.js:320:37
at Container._get (/home/theia/node_modules/inversify/lib/container/container.js:311:44)
at Container.getAll (/home/theia/node_modules/inversify/lib/container/container.js:239:21)
{ Error: EACCES: permission denied, open '/home/theia/package-backup.json'
at Object.fs.openSync (fs.js:646:18)
at copyFileSync (/home/theia/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js:23:18)
at Object.copySync (/home/theia/node_modules/fs-extra/lib/copy-sync/copy-sync.js:43:5)
at ApplicationProject.backup (/home/theia/node_modules/@theia/extension-manager/lib/node/application-project.js:325:16)
at new ApplicationProject (/home/theia/node_modules/@theia/extension-manager/lib/node/application-project.js:114:14)
at _createInstance (/home/theia/node_modules/inversify/lib/resolution/instantiation.js:21:12)
at Object.resolveInstance (/home/theia/node_modules/inversify/lib/resolution/instantiation.js:41:18)
at /home/theia/node_modules/inversify/lib/resolution/resolver.js:72:42
at Array.map ()
at Object.resolveInstance (/home/theia/node_modules/inversify/lib/resolution/instantiation.js:40:67)
errno: -13,
code: 'EACCES',
syscall: 'open',
path: '/home/theia/package-backup.json' }
Server worker is ready to accept messages. [ID: 1 \ PID: 38]
root ERROR Could not start contribution Error: EACCES: permission denied, open '/home/theia/.application-module-loader.js'
at Object.fs.openSync (fs.js:646:18)
at Object.fs.writeFileSync (fs.js:1299:33)
at ApplicationPackage.get [as resolveModule] (/home/theia/node_modules/@theia/application-package/lib/application-package.js:379:20)
at ApplicationPackage.get [as extensionPackages] (/home/theia/node_modules/@theia/application-package/lib/application-package.js:158:157)
at ExtensionMetricsContribution.startCollecting (/home/theia/node_modules/@theia/metrics/lib/node/extensions-metrics-contribution.js:40:59)
at /home/theia/node_modules/@theia/metrics/lib/node/metrics-backend-application-contribution.js:46:26
at Array.forEach ()
at MetricsBackendApplicationContribution.onStart (/home/theia/node_modules/@theia/metrics/lib/node/metrics-backend-application-contribution.js:45:50)
at BackendApplication. (/home/theia/node_modules/@theia/core/lib/node/backend-application.js:283:54)
at step (/home/theia/node_modules/@theia/core/lib/node/backend-application.js:59:23)
root INFO Theia app listening on http://0.0.0.0:3000 .
Received message which is neither a response nor a notification message:
"3000"
root ERROR Cannot find a service for the path: /services/logger
root ERROR Cannot find a service for the path: /services/messageService
root ERROR Cannot find a service for the path: /services/filesystem
root ERROR Cannot find a service for the path: /services/fs-watcher
root ERROR Cannot find a service for the path: /services/workspace
root ERROR Cannot find a service for the path: /services/envs
root ERROR Cannot find a service for the path: /services/git
root ERROR Cannot find a service for the path: /services/git-watcher
root ERROR Cannot find a service for the path: /services/mini-browser-service
root ERROR Cannot find a service for the path: /services/task
root ERROR Cannot find a service for the path: /services/fs-watcher
root ERROR Cannot find a service for the path: /services/application
root ERROR Cannot find a service for the path: /services/extensions
root ERROR Cannot find a service for the path: /services/search
you can reproduce this with the Theia OpenShift image and deploy a TLS enabled route on OpenShift Online.
Steps to reproduce:
theia-openshift
image to the OpenShift Online Registry for your project.chinodesuuu/theia:latest
)Expected: Even if it serves under http://0.0.0.0, it should accept incoming requests regardless if router enforced TLS.
Result: It does not serve on TLS-enabled routes or it takes a long time to serve to the route (if you do the same without the TLS, it serves immediately).
Whenever a new next version of @theia/core is published, typefox/theia:next
image should be built and published to Docker Hub. Not sure whether we need to keep images for each published version similar to the latest image.
Probably npm webhook can be used to trigger the build on Docker Hub.
after this is done: theia-ide/theia-php-extension#6
I am trying to connect monaco language client to the C++ language server in theia_full_docker, but unable to succeed.
First of all, I am able to run the monaco language client browser example successfully with JSON language server working. Also, I am able to run the browser example in theia_full_docker with C++ language server working. Next I want to see if I can have monaco language client work with the C++ language server within theia_full_docker.
What I have done so far:
1 in monaco language client browser example's client.ts, register the C++ language, similar to JSON in the original example;
2 have the client point to /services on the theia server with C++ language server;
Then I go ahead to type some C++ code, expecting completion to work, but it does not.
Things I notice:
1 the editor seems stuck at the initialize
command; I found this by checking the websocket traffic in Chome's Network tab; the request looks like:
{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"rootPath":null,"rootUri":null,"capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true},"didChangeConfiguration":{"dynamicRegistration":false},"didChangeWatchedFiles":{"dynamicRegistration":false},"symbol":{"dynamicRegistration":true},"executeCommand":{"dynamicRegistration":true}},"textDocument":{"synchronization":{"dynamicRegistration":true},"completion":{"completionItem":{"snippetSupport":true},"dynamicRegistration":true},"hover":{"dynamicRegistration":true},"signatureHelp":{"dynamicRegistration":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"definition":{"dynamicRegistration":true},"codeAction":{"dynamicRegistration":true},"codeLens":{"dynamicRegistration":true},"documentLink":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true}}},"trace":"off"}}
but the server never sends any response;
2 the ws endpoint /services on the server is open -- I am able to connect to it using some Chrome plugin; but when I try to send a JSON RPC initialize request to it, I get no response (again);
3 each time I try to connect to the server, I see the server prints this error message: root ERROR The ws channel does not exist 0
.
Any idea how I can achieve this goal? Have spent hours on it to no avail.
Thanks!
Would it also be possible to enable automated builds so that whenever an update is pushed to any of the theia Dockerfiles all of the containers are also updated automatically?
Currently some of your containers (like full) lag behind the others, and it is not clear when updates are manually pushed.
Thanks.
The image should be published under theiaide with theia-electron-builder
name.
I launched a container using the latest version of the offical Theia Docker on a server, but cannot visit it. I have no problem to visit it if I launch a container locally (on my Mac). Does the Theia Docker miss some configuration to make it usable by all ips?
Note: none of this happens with the theia-go image, which works fine, as far as I can tell.
When using an image locally build from theia-full, it seems that the go LS is partially non-functional. It's immediately seen that it's unable to find function references:
Also, maybe related, normally it's possible to right-click on a function and get a context menu with e.g. navigation options. When I try to right-click on a function name, I get the following exception logged in the F-E, and no context menu appears:
editor.main.js:31 Uncaught Error: Command 'go.add.tags' already registered.
Error: Command 'go.add.tags' already registered.
at CommandRegistry.addCommand (index.js:121)
at BrowserMainMenuFactory.addPhosphorCommand (browser-menu-plugin.ts:69)
at BrowserMainMenuFactory.addPhosphorCommands (browser-menu-plugin.ts:57)
at BrowserMainMenuFactory.addPhosphorCommands (browser-menu-plugin.ts:59)
at BrowserMainMenuFactory.createPhosporCommands (browser-menu-plugin.ts:50)
at BrowserMainMenuFactory.createContextMenu (browser-menu-plugin.ts:42)
at BrowserContextMenuRenderer.render (browser-context-menu-renderer.ts:20)
at MonacoContextMenuService.showContextMenu (monaco-context-menu.ts:27)
at e._doShowContextMenu (editor.main.js:31)
at e.showContextMenu (editor.main.js:31)
at CommandRegistry.addCommand (index.js:121)
at BrowserMainMenuFactory.addPhosphorCommand (browser-menu-plugin.ts:69)
at BrowserMainMenuFactory.addPhosphorCommands (browser-menu-plugin.ts:57)
at BrowserMainMenuFactory.addPhosphorCommands (browser-menu-plugin.ts:59)
at BrowserMainMenuFactory.createPhosporCommands (browser-menu-plugin.ts:50)
at BrowserMainMenuFactory.createContextMenu (browser-menu-plugin.ts:42)
at BrowserContextMenuRenderer.render (browser-context-menu-renderer.ts:20)
at MonacoContextMenuService.showContextMenu (monaco-context-menu.ts:27)
at e._doShowContextMenu (editor.main.js:31)
at e.showContextMenu (editor.main.js:31)
at editor.main.js:31
Also, some .go file I seem unable to open, from the navigator. When I double-click on them, they are not open, and the following exception is generated in the FE:
Uncaught (in promise) A resource provider for 'file:///home/theia/go/src/bufio/bufio.go' is not registered.
rejected @ opener-service.ts:6
Promise rejected (async)
step @ opener-service.ts:6
fulfilled @ opener-service.ts:6
Promise resolved (async)
step @ opener-service.ts:6
(anonymous) @ opener-service.ts:6
__awaiter @ opener-service.ts:6
open @ opener-service.ts:71
FileNavigatorModel.doOpenNode @ navigator-model.ts:32
TreeModel.openNode @ tree-model.ts:238
TreeWidget.handleDblClickEvent @ tree-widget.ts:280
ondblclick @ tree-widget.ts:131
There is nothing of interest in the B-E stdout, that seems related to these issues.
Useful if we want to extend the functionality by using the existing container published in DockerHub than providing our own builds to do such
IIUC, using "latest" version in package.json means that we will pick-up the latest published version of each module. In theory we can instead use "next" which means (I think) the latest version of a given component, even if not released yet, as part of a Theia version.
So for theia-docker-go, I tried to replace "latest" by "next" in package.json, and build the application (I by-pass docker and build natively - I assume the result would be the same with Docker).
$> cp latest.package.json package.json
$> # replace all "latest" by "next" in package.json
$> yarn
$> npx theia build
$> node src-gen/backend/main.js
The application builds correctly but there's an issue reported in the frontend, preventing it from starting:
Should this work? I guess by using "next" we might end-up with a mis-match of Theia extensions that are not tested well together?
If instead I keep the content of the original "latest.package.json", then the application starts correctly.
We had more CI failures lately, and from the logs it sounds like the GH token that was previousky setup is no longer being used?
https://travis-ci.org/theia-ide/theia-apps/jobs/401582950#L606
Whenever a new release is published to theia-ide/theia
repo, i.e. a tag is created:
typefox/theia:${tagVersion}
, e.g. typefox/theia:v0.3.0
, should be build and pushed to Docker HubProbably it can be triggered via npmjs webhooks.
Currently, the travis file calls
docker build ... --cache-from "$IMAGE_TAG"
The image tag contains the most recent version number of @theia/core
.
This strategy can yield stale builds when we don't update all versions of all Theia NPM packages simultaneously. Note we currently have @theia/core
at version 0.3.0 while e.g. @theia/languages
is at 0.3.1.
In particular, this does not allow to produce app image builds where the version of the specific extensions change more frequently than Theia. As the Dockerfile has no changes, yarn
won't be run.
This actually happens for theia-go
.
After this is done: theia-ide/theia-php-extension#6
Would be very helpful for JavaScript development to have inline eslint warnings in Theia, along the lines of what we currently have for Typescript.
FWIW, this is something currently supported by https://codesandbox.io/
I think this was working last week. Now there is this build error:
ERROR in ./~/theia-yang-extension/lib/frontend/monaco/yang-monaco-editor-provider.js
Module not found: Error: Can't resolve '@theia/monaco/lib/browser/monaco-diff-nagivator-factory' in '/home/theia/node_modules/theia-yang-extension/lib/frontend/monaco'
@ ./~/theia-yang-extension/lib/frontend/monaco/yang-monaco-editor-provider.js 50:38-104
@ ./~/theia-yang-extension/lib/frontend/language/frontend-extension.js
@ ./src-gen/frontend/index.js
Error: webpack failed with the exit code 2
at ChildProcess.<anonymous> (/home/theia/node_modules/@theia/application-manager/lib/application-process.js:59:28)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:925:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
error Command failed with exit code 1.
It seems that a typo in this filename @theia/monaco/src/browser/monaco-diff-nagivator-factory.ts
has been fixed in the main Theia repo, and we would need to use the new name:
"nagivator" => "navigator"
Currently, when attempted to be built - it errors out: Mainly because it was built differently unlike other Node containers of Theia that uses Node.js Alpine/Debian from Docker Library.
I'll be doing this once PR #35 is done.
Probably happens in all images that include @theia/typescript
. Looks like the TS compiler is not found (tsserver).
Generic message shown in Theia client: "Failed to start language server 'TypeScript'"
in client console:
messages.js:46 Uncaught (in promise) Error: Request initialize failed with message: Couldn't find 'tsserver' executable
at new ResponseError (messages.js:46)
at handleResponse (main.js:430)
at processMessageQueue (main.js:258)
at main.js:242
at run (setImmediate.js:40)
at runIfPresent (setImmediate.js:69)
at onGlobalMessage (setImmediate.js:109)
With a new image built from scratch (with --no-cache), the following error can be seen in the front-end. Maybe related to the new Theia version published yesterday? :
index.js:47 Failed to start the frontend application.
module.exports.Promise.resolve.then.then.then.then.then.then.then.then.then.then.then.then.then.then.then.then.then.then.then.then.then.catch.reason @ index.js:47
14:49:28.634 index.js:49 Error: @inject called with undefined this could mean that the class GoCommandContribution has a circular dependency problem. You can use a LazyServiceIdentifer to overcome this limitation.
at inject.js:20
at go-command-contribution.ts:6
at DecorateConstructor (Reflect.ts:1202)
at Object.decorate (Reflect.ts:742)
at __decorate (go-command-contribution.ts:6)
at go-command-contribution.ts:23
at Object.__decorate (go-command-contribution.ts:53)
at __webpack_require__ (bootstrap f95e21a8b358d1d5e83b:659)
at fn (bootstrap f95e21a8b358d1d5e83b:85)
at Object.__values (go-frontend-module.ts:11)
I successfully built the Theia full Docker but cannot visit the server after launching a container.
See for the guidance: #14 (comment)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.