Uploaded by Diego Güizzo

Theia - Plataforma IDE de escritorio y nube

advertisement
17/1/23, 9:06
Theia - Plataforma IDE de escritorio y nube
Elige un tema
Build your own IDE/Tool
This guide will teach you how to build your own Theia-based application. The guide will
demonstrate how to configure your own application composed of existing or new Theia
extensions, and any VS Code extensions you want bundled in your application by default.
Please get familiar with the extension mechanisms of Theia in case you are not already. This
guide describes the manual steps to build a Theia-based product, there are two ways to avoid
this manual set-up:
Theia Extension Yeoman generator: Generates Theia-based products along with example
extensions.
Theia Blueprint: A template tool for creating installable desktop applications based on
Theia.
We still recommend reading the manual guide first, it allows you to understand the structure
of a Theia-based project.
Requirements
The detailed list of prerequisites is located at the main Theia repository:
Prerequisites
Setup
Start with creating a new empty directory and moving into it:
mkdir my-app
cd my-app
Create package.json in this directory:
{
"private": true,
"dependencies": {
"@theia/callhierarchy": "next",
"@theia/file-search": "next",
"@theia/git": "next",
https://theia-ide.org/docs/composing_applications
1/6
17/1/23, 9:06
Theia - Plataforma IDE de escritorio y nube
"@theia/markers": "next",
"@theia/messages": "next",
"@theia/mini-browser": "next",
"@theia/navigator": "next",
"@theia/outline-view": "next",
"@theia/plugin-ext-vscode": "next",
"@theia/preferences": "next",
"@theia/preview": "next",
"@theia/search-in-workspace": "next",
"@theia/terminal": "next"
},
"devDependencies": {
"@theia/cli": "next"
}
}
In a nutshell, Theia applications and extensions are Node.js packages. Each package has a
package.json file that manifests package metadata, like name , version , its runtime and build
time dependencies and so on.
Let's have a look at the created package:
Its name and version are omitted since we are not going to use it as a dependency, and it's
marked as private since it is not going to be published as a Node.js package on its own.
We've listed required extensions as runtime dependencies, e.g. @theia/navigator .
Algunas extensiones requieren la instalación de herramientas adicionales; en tales
casos, consulte la documentación de la extensión correspondiente.
Utilice este enlace para ver todas las extensiones publicadas.
Hemos enumerado @theia/cli como una dependencia de tiempo de compilación.
Proporciona scripts para compilar y ejecutar la aplicación.
Consumir extensiones de código VS
Como parte de su aplicación, también es posible consumir (y empaquetar) extensiones de VS
Code. El repositorio de Theia contiene una guía sobre cómo incluir dichas extensiones como
parte del archivo package.json .
Un ejemplo package.json puede parecerse al siguiente:
{
"private": true,
"dependencies": {
"@theia/callhierarchy": "next",
"@theia/file-search": "next",
"@theia/git": "next",
"@theia/markers": "next",
"@theia/messages": "next",
https://theia-ide.org/docs/composing_applications
2/6
17/1/23, 9:06
Theia - Plataforma IDE de escritorio y nube
"@theia/navigator": "next",
"@theia/outline-view": "next",
"@theia/plugin-ext-vscode": "next",
"@theia/preferences": "next",
"@theia/preview": "next",
"@theia/search-in-workspace": "next",
"@theia/terminal": "next",
"@theia/vsx-registry": "next"
},
"devDependencies": {
"@theia/cli": "next"
},
"scripts": {
"prepare": "yarn run clean && yarn build && yarn run download:plugins",
"clean": "theia clean",
"build": "theia build --mode development",
"start": "theia start --plugins=local-dir:plugins",
"download:plugins": "theia download:plugins"
},
"theiaPluginsDir": "plugins",
"theiaPlugins": {
"vscode-builtin-extensions-pack": "https://open-vsx.org/api/eclipse-theia/builti
},
"theiaPluginsExcludeIds": [
"ms-vscode.js-debug-companion",
"vscode.extension-editing",
"vscode.git",
"vscode.git-ui",
"vscode.github",
"vscode.github-authentication",
"vscode.microsoft-authentication"
]
}
Las siguientes propiedades se utilizan para consumir complementos integrados (extensiones
incluidas):
theiaPluginsDir : la ruta relativa para implementar complementos en
theiaPlugins : la colección de complementos para descargar (complementos individuales o
paquetes de extensión): puede apuntar a cualquier URL de descarga válida (por ejemplo,
Open VSX, Github Releases, etc.)
theiaPluginsExcludeIds : la lista de complementos ids para excluir al resolver paquetes de
extensión
Edificio
https://theia-ide.org/docs/composing_applications
3/6
17/1/23, 9:06
Theia - Plataforma IDE de escritorio y nube
Primero, instale todas las dependencias.
yarn
En segundo lugar, use Theia CLI para construir la aplicación.
yarn theia build
yarn busca el theia ejecutable proporcionado por @theia/cli en el contexto de nuestra
aplicación y luego ejecuta el build comando con theia . Esto puede llevar un tiempo ya que la
aplicación está construida en modo de producción de forma predeterminada, es decir,
ofuscada y minimizada.
Corriendo
Una vez finalizada la compilación, podemos iniciar la aplicación:
yarn theia start --plugins=local-dir:plugins
o confíe en el start script de package.json :
yarn start
Puede proporcionar una ruta de espacio de trabajo para abrir como primer argumento y -hostname opciones --port para implementar la aplicación en puertos e interfaces de red
específicos, por ejemplo, para abrir /workspace en todas las interfaces y puertos 8080 :
yarn start /my-workspace --hostname 0.0.0.0 --port 8080
En la terminal, debería ver que la aplicación Theia está activa y escuchando:
Abra la aplicación ingresando la dirección impresa en una nueva página del navegador.
Solución de problemas
https://theia-ide.org/docs/composing_applications
4/6
17/1/23, 9:06
Theia - Plataforma IDE de escritorio y nube
Los complementos no aparecen
Si no hay complementos disponibles en la instancia de Theia en ejecución, es posible que
deba decirle a Theia dónde encontrar los complementos descargados. El ejemplo anterior
establece el --plugins interruptor en el start comando que debería ser suficiente. Sin
embargo, si se ejecuta theia start directamente, puede establecer alternativamente una
variable de entorno para lograr lo mismo:
export THEIA_DEFAULT_PLUGINS=local-dir:plugins
Construyendo dependencias nativas detrás de un proxy
Si ejecuta el yarn comando detrás de un proxy, puede encontrar problemas al crear
dependencias nativas (como oniguruma ), en la última parte de la compilación, con la siguiente
pila de errores:
[4/4] Building fresh packages...
[1/9] XXXXX
[2/9] XXXXX
[3/9] XXXXX
[4/9] XXXXX
error /theiaide/node_modules/XXXXX: Command failed.
Exit code: 1
Command: node-gyp rebuild
Arguments:
Directory: /theiaide/node_modules/XXXXX
Output:
gyp info
gyp info
gyp info
gyp http
gyp WARN
gyp ERR!
gyp ERR!
gyp ERR!
gyp ERR!
gyp ERR!
gyp ERR!
gyp ERR!
it worked if it ends with ok
using node-gyp@3.8.0
using node@8.15.0 | linux | x64
GET https://nodejs.org/download/release/v8.15.0/node-v8.15.0-headers.tar.gz
install got an error, rolling back install
configure error
stack Error: read ECONNRESET
stack at TLSWrap.onread (net.js:622:25)
System Linux 3.10.0-862.11.6.el7.x86_64
command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bi
cwd /theiaide/node_modules/XXXXX
node -v v8.15.0
Esto sucede porque node-gyp no depende de la configuración del proxy del sistema/NPM. En
ese caso, descargue el node-headers archivo utilizando el enlace proporcionado en la pila de
errores (en el ejemplo anterior https://nodejs.org/download/release/v8.15.0/node-v8.15.0headers.tar.gz ) y ejecute la compilación con el siguiente comando:
npm_config_tarball=/path/to/node-v8.15.0-headers.tar.gz yarn install
https://theia-ide.org/docs/composing_applications
5/6
17/1/23, 9:06
Theia - Plataforma IDE de escritorio y nube
¡Unete a la communidad!
Acerca de | Política de privacidad | Condiciones de uso | Agente de derechos de autor
© 2023 por Fundación Eclipse
https://theia-ide.org/docs/composing_applications
6/6
Download