The following guide highlights potential migration steps necessary during theia
upgrades discovered when adopting the framework.
Please see the latest version (master
) for the most up-to-date information.
- Theia was updated to ES2017
- es5 VS Code extensions and Theia plugins are still supported
- If you require an es5 codebase you should be able to transpile back to es5 using webpack
- The following code transpiles back to an es2015 codebase:
config.module.rules.push({ test: /\.js$/, use: { loader: 'babel-loader', options: { presets: [['@babel/preset-env', { targets: { chrome: '58', ie: '11' } }]], } } });
- Replace the targets with the ones that are needed for your use case
- Make sure to use
[email protected]
. Theia requiresinversify@^5.0.1
which means that5.1.1
is compatible, but your lockfile might reference an older version.
- N/A.
-
keytar
was added as a dependency for the secrets API. and may requirelibsecret
in your particular distribution to be functional:- Debian/Ubuntu:
sudo apt-get install libsecret-1-dev
- Red Hat-based:
sudo yum install libsecret-devel
- Arch Linux:
sudo pacman -S libsecret
- Alpine:
apk add libsecret-dev
- Debian/Ubuntu:
-
It is possible that a
yarn resolution
is necessary forkeytar
to work on older distributions (the fix was added in1.16.0
by downgrading the dependency version):"resolutions": { "**/keytar": "7.6.0", }
-
keytar
usesprebuild-install
to download prebuilt binaries. If you are experiencing issues where some shared libraries are missing from the system it was originally built upon, you can tellprebuild-install
to build the native extension locally by setting the environment variable before performingyarn
:# either: export npm_config_build_from_source=true yarn # or: npm_config_build_from_source=true yarn
-
The version of webpack was upgraded from 4 to 5 and may require additional shims to work properly given an application's particular setup.
-
The
webpack
dependency may need to be updated if there are errors when performing aproduction
build of the application due to a boguswebpack-sources
dependency. The validwebpack
version includes^5.36.2 <5.47.0
. If necessary, you can use ayarn resolution
to fix the issue:"resolutions": { "**/webpack": "5.46.0", }