vuejs / vitepress

Vite & Vue powered static site generator.
https://vitepress.dev
MIT License
12.59k stars 2.05k forks source link

Error: [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import ... #3872

Closed linpengteng closed 4 months ago

linpengteng commented 4 months ago

Describe the bug

我使用了一个 npm依赖包 @antd-templater/library-3.x, 运行 pnpm docs:dev 正常,但是当我运行 pnpm docs:build 时则报如下错误:

image


@antd-templater/library-3.x 报错代码的文件部分代码

import { defineComponent, ref, onMounted, createVNode, mergeProps } from 'vue';
import ATooltip from 'ant-design-vue/es/tooltip';
import * as VueTypes from 'vue-types';

const SEllipsis = /* @__PURE__ */ defineComponent({
   // ....
})

Reproduction

https://stackblitz.com/edit/vite-kzz2up?file=docs%2F.vitepress%2Ftheme%2Findex.ts

Expected behavior

希望可以正常构建

System Info

System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 18.18.0 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 10.2.3 - /usr/local/bin/npm
    pnpm: 8.15.6 - /usr/local/bin/pnpm
  npmPackages:
    vitepress: latest => 1.1.4

Additional context

No response

Validations

linpengteng commented 4 months ago

@antd-templater/library-3.x 这个包,我在另一个 Vite + Vue3 前端项目中有构建使用,运行 pnpm build 构建并不会报错。不是很明白,两者在构建时有什么区别,似乎当前 vitepress + Vue3 项目构建运行时,不能根据自动适配 package.json exports 字段,并置以 ESM 模块方式执行

另一个 Vite + Vue3 项目所使用的 https://github.com/antd-templater/template-3.x/blob/main/src/main.ts

majoson-chen commented 4 months ago

+1

majoson-chen commented 4 months ago
build error:
Error [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import '/Users/majoson/CodeSpace/suiue/packages/docs/node_modules/vue/server-renderer' is not supported resolving ES modules imported from /Users/majoson/CodeSpace/suiue/packages/docs/.vitepress/.temp/app.js
Did you mean to import vue@3.4.26_typescript@5.4.5/node_modules/vue/server-renderer/index.js?
    at new NodeError (node:internal/errors:405:5)
    at finalizeResolution (node:internal/modules/esm/resolve:320:17)
    at moduleResolve (node:internal/modules/esm/resolve:946:10)
    at defaultResolve (node:internal/modules/esm/resolve:1132:11)
    at nextResolve (node:internal/modules/esm/loader:163:28)
    at ESMLoader.resolve (node:internal/modules/esm/loader:835:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:77:40)
    at link (node:internal/modules/esm/module_job:76:36)
brc-dd commented 4 months ago

That library has invalid ESM. You'll need to force transpile it. Try adding ant-design-vue to vite.ssr.noExternal

linpengteng commented 4 months ago

Thank you, the problem has been resolved