首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在vuepress 2中使用类星体框架?

问如何在vuepress 2中使用类星体框架?
EN

Stack Overflow用户
提问于 2022-05-29 03:58:29
回答 2查看 250关注 0票数 0

我现在在类星体2.7.1中使用vuepress2,如下所示:

代码语言:javascript
复制
import { Quasar } from 'quasar';

export default defineClientAppEnhance(({ app, router, siteData }) => {
  app.use(Quasar);
}
代码语言:javascript
复制
@import url(https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons|Material+Icons+Outlined);
@import 'quasar/src/css/variables.sass';
@import 'quasar/src/css/core/colors.sass';
.quasar-comp {
  @import 'quasar/src/css/index.sass';
}
/* I wrap the custome component in class .quasar-comp 
   so that the style from quasar won't conflict with style from vuepress. */

但有两个问题:

类星体的样式不能在某些组件上工作,比如q-menu.

  • It或q-btn-dropdown在dev模式(npm run docs:dev)上工作良好,但是build(npm run docs:build).

失败。

代码语言:javascript
复制
✔ Compiling with vite - done
✖ Rendering pages - failed
TypeError: Cannot convert undefined or null to object
    at Function.assign (<anonymous>)
    at installQuasar (/Users/lxm/Documents/neo/leaneo-docs/node_modules/quasar/dist/quasar.cjs.prod.js:6:15228)
    at Object.install (/Users/lxm/Documents/neo/leaneo-docs/node_modules/quasar/dist/quasar.cjs.prod.js:6:479348)
    at Object.use (/Users/lxm/Documents/neo/leaneo-docs/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:3393:28)
    at /Users/lxm/Documents/neo/leaneo-docs/docs/.vuepress/dist/.server/app.js:3745:7
    at createVueApp (/Users/lxm/Documents/neo/leaneo-docs/docs/.vuepress/dist/.server/app.js:4177:11)
    at async /Users/lxm/Documents/neo/leaneo-docs/node_modules/vuepress-vite/node_modules/@vuepress/bundler-vite/lib/build/build.js:49:52
    at async /Users/lxm/Documents/neo/leaneo-docs/node_modules/@vuepress/utils/lib/withSpinner.js:12:24
    at async build (/Users/lxm/Documents/neo/leaneo-docs/node_modules/vuepress-vite/node_modules/@vuepress/bundler-vite/lib/build/build.js:34:5)
    at async /Users/lxm/Documents/neo/leaneo-docs/node_modules/@vuepress/cli/lib/commands/build/createBuild.js:51:5

有更好的方法让类星体和vuepress一起工作吗?

EN

回答 2

Stack Overflow用户

发布于 2022-07-04 12:30:27

下面是Vuepress 2 (beta)和类星体的实现。

首先,使用新的语法将类星体安装到Vuepress中,并导入所有样式:

client.ts

代码语言:javascript
复制
import { defineClientConfig } from "@vuepress/client";
import { Quasar } from "quasar";

import 'quasar/src/css/index.sass';

export default defineClientConfig({
  enhance({app, router, siteData}) {
    app.use(Quasar);
  },
  setup() {},
  rootComponents: [],
});

然后,如果使用vite,则忽略来自sass的弃用错误。

config.ts

代码语言:javascript
复制
import { viteBundler } from '@vuepress/bundler-vite'
import { defineUserConfig } from '@vuepress/cli'

export default defineUserConfig({
  // your config
  ...
  
  bundler: viteBundler({
    viteOptions: {
      css: {
        preprocessorOptions: {
          scss: {
            sassOptions: {
              // ignore sass deprecation errors
              quietDeps: true
              }
            }
          }
        }
      },
  }),
});

希望它有帮助:)

票数 0
EN

Stack Overflow用户

发布于 2022-11-17 12:43:50

类星体需要一些全球性的定义(如果是SSR)。下面的解决方案在客户端起作用,所以一定要在<ClientOnly>中包装您的自定义类星体组件!

代码语言:javascript
复制
// .vuepress/config.ts
bundler: viteBundler({
  viteOptions: {
    define: {
      __QUASAR_VERSION__: `'dev'`,
      __QUASAR_SSR__: false,
      __QUASAR_SSR_SERVER__: false,
      __QUASAR_SSR_CLIENT__: false,
      __QUASAR_SSR_PWA__: false
    }
  }
}),
代码语言:javascript
复制
// .vuepress/client.ts
import { defineClientConfig } from '@vuepress/client'
import Quasar from "quasar/src/install-quasar.js";

// optionally import your styles here
// import 'quasar/src/css/index.sass';

export default defineClientConfig({
  enhance({ app, router, siteData }) {
    app.use(Quasar);
  },
  setup() {
  },
  rootComponents: [],
});
代码语言:javascript
复制
<!-- README.md -->
<ClientOnly>
  <MyComponent />
</ClientOnly>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72420805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档