vitepress 打包遇到windows为undefiend的问题

市面上针对vitepress的文章比较少,官方文档也不是很全,需要自行去源码里面找配置
当文档项目打包时因为引入的第三方组件库内部会用到windows,但vitepress打包的时候,会在node中执行(为了服务端渲染的场景),node中没有window
找了下文档,有两种解决思路, 特此记录


第一种方案: 使用ClientOnly组件(仅在客户端渲染其插槽组件使用)  但是不建议
<ClientOnly>
  <NonSSRFriendlyComponent />
</ClientOnly>

第二种方案: 使用vue混入,在mounted中动态导入,
// \docs\.vitepress\theme\index.js
export default {
  ...DefaultTheme,
  NotFound: () => "custom 404", // <- this is a Vue 3 functional component
  enhanceApp: async (ctx) => {
    let { app } = ctx;
    DefaultTheme.enhanceApp(ctx);
    app.mixin({
      async mounted() {
        //你自己的插件地址
        import('../../src/index.js').then(module => {
            Vue.use(module.default);
        })
      },
    });
  },
};

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值