Compatibility Build 
We took the chance of the rewrite to make some breaking changes that we think are beneficial for the future. We'd suggest you try to migrate those changes if possible, as most of them should be straightforward. If you have very deep integration, you can try our compatibility build which aligns better with shiki's current API.
Install shikiji-compat 
Set the alias to shiki in your package.json:
json
{
  "dependencies": {
    "shiki": "npm:shikiji-compat@0.9"
  }
}Breaking Changes from Shiki 
As of shiki@0.14.3, the breaking changes between Shiiki and Shikiji are:
Hard Breaking Changes 
Breaking changes applied to both shikiji and shikiji-compat:
- CJS and IIFE builds are dropped. See CJS Usage and CDN Usage for more details.
- codeToHtmluses- hastinternally. The generated HTML will be a bit different but should behave the same.
- css-variablestheme is not supported. Use the dual themes approach instead.
Soft Breaking Changes 
Breaking changes applies to shikiji, but are shimmed by shikiji-compat:
- Top-level named export setCDN,loadLanguage,loadTheme,setWasmare dropped as they are not needed anymore.
- BUNDLED_LANGUAGES,- BUNDLED_THEMESare moved to- shikiji/langsand- shikiji/themesand renamed to- bundledLanguagesand- bundledThemesrespectively.
- themeoption for- getHighlighteris dropped, use- themeswith an array instead.
- Highlighter does not maintain an internal default theme context. themeoption is required forcodeToHtmlandcodeToThemedTokens.
- .ansiToHtmlis merged into- .codeToHtmlas a special language- ansi. Use- .codeToHtml(code, { lang: 'ansi' })instead.
- lineOptionsis dropped in favor of the fully customizable- transformsoption.
- LanguageRegistration's- grammarfield is flattened to- LanguageRegistrationitself, refer to the types for more details.