title: 配置 Monaco
配置 Monaco {#configure-monaco}
创建一份包含以下内容的 ./setup/monaco.ts 文件:
import { defineMonacoSetup } from '@slidev/types'export default defineMonacoSetup(async (monaco) => {// 使用 `monaco` 配置})
访问 monaco-editor 了解更多关于 Monaco 配置的相关信息。
用法 {#usage}
如果你想在你的幻灯片中使用 Monaco, 只需添加 {monaco} 到你的代码片段中:
//```jsconst count = ref(1)const plusOne = computed(() => count.value + 1)console.log(plusOne.value) // 2plusOne.value++ // 报错//```
修改为
//```js {monaco}const count = ref(1)const plusOne = computed(() => count.value + 1)console.log(plusOne.value) // 2plusOne.value++ // 报错//```
导出 {#exporting}
默认情况下, Monaco 只会在开发模式开启。如果你想在导出的单页应用中使用,你需要配置你的扉页:
---monaco: true # 默认为 "dev"---
类型自动安装 {#types-auto-installing}
当你使用 Monaco 编写 TypeScript 时,类型依赖将会自动安装到客户端.
//```ts {monaco}import { ref } from 'vue'import { useMouse } from '@vueuse/core'const counter = ref(0)//```
在上面的示例中,只需确保项目依赖(dependencies 或 devDependencies)中包含所用到的 vue 和 @vueuse/core,Slidev 将处理剩余的部分以使你的 Monaco 编辑器获得正确的类型支持。
配置主题 {#configure-themes}
Monaco 主题受 Slidev 的亮色/暗色主题控制。如果你想定制主题,可以在配置函数中传入主题 id:
// ./setup/monaco.tsimport { defineMonacoSetup } from '@slidev/types'export default defineMonacoSetup(() => {return {theme: {dark: 'vs-dark',light: 'vs',},}})
如果你想载入自定义主题:
import { defineMonacoSetup } from '@slidev/types'// 改成你的主题import dark from 'theme-vitesse/themes/vitesse-dark.json'import light from 'theme-vitesse/themes/vitesse-light.json'export default defineMonacoSetup((monaco) => {monaco.editor.defineTheme('vitesse-light', light as any)monaco.editor.defineTheme('vitesse-dark', dark as any)return {theme: {light: 'vitesse-light',dark: 'vitesse-dark',},}})
如果你在创建一个 Slidev 主题,在配置函数中使用动态
import()以获得更好的 tree-shaking 和代码分割结果。
