常见问题

💡 查看 issues 以了解已知问题和解决方法

找不到处理 '.vue' 文件的加载器

虽然我们添加了解决方法来缓解此问题,但 vite 建议为非 javascript 资产显式定义扩展名。

- import MyComponent from '~/components/MyComponent'
+ import MyComponent from '~/components/MyComponent.vue'

Uncaught SyntaxError: 请求的模块...没有提供名为 'default' 的导出

Vite 在使用命名导出预捆绑依赖项方面存在问题 (#56 )。解决方法是将它们从 optimizeDeps 中排除

// nuxt.config
export default {
  vite: {
    optimizeDeps: {
      exclude: [
        'date-fns'
      ]
    }
  }
}

默认情况下,一些已知软件包被排除在外。请回复 issue #56 以添加更多已知问题软件包。

没有此文件或目录,rmdir node_modules/.vite/temp

这是一个竞争条件,服务器缓存目录在重新加载时会删除 (vitejs/vite/pull/2299 )

目前使用 vite 的一个分支来解决此问题。如果您仍然遇到此问题,请在 #2 中添加版本和错误

styleResources

styleResources 依赖于 webpack,但 nuxt-vite 不支持它。

您可以使用 CSS 加载器的 preprocessorOptions 选项配置全局 CSS 导入

SCSS 示例

export default {
  css: ["@/assets/scss/global.scss"],
  vite: {
    css: {
      preprocessorOptions: {
        scss: {
          additionalData: '@import "@/assets/scss/global.scss";',
        },
      },
    },
  },
}

Graphql 支持

目前没有模块支持处理 gql 文件 (#31 )。

目前最好的解决方案是将 gql 代码包装在 jsts 中,并使用 graphql-tag 或使用原始 GraphQL 查询。请记住添加 loc.source.body

示例

// queries/products.js
import gql from 'graphql-tag'
export default gql`
  query Products {
    products {
      id
      name
    }
  }
`
// pages/index.vue
import products  from '~/queries/products'
export default {
    async asyncData({ $strapi }) {
        const response = await $strapi.graphql({
            query: products.loc.source.body,
        })
        return {
            response
        }
    }
}

SSR 资产问题

#7 相关,从您的模板导入资产时可能会发生错误。

中断导入的示例

<img src="../static/img/logo.svg">

在解决此问题之前,您需要在开发中禁用 SSR,并使用项目根文件夹的完整路径引用您的图像。

导入工作的示例

// nuxt.config.js

export default {
  ssr: false
}
<img src="~/static/img/logo.svg" />
在 GitHub 上编辑此页面 更新于 2021 年 10 月 11 日星期一