我正在开发一个使用 mdx 的项目,并且从一开始就有,但在添加 fumadocs 后,我收到以下与
@mdx-js/mdx
相关的错误。
Package path ./codes.js is not exported from /Users/bigsexy/Desktop/..../micromark-util-symbol (see exports field in /.../micromark-util-symbol/package.json
micromark
包有以下导出:
"exports": {
"types": "./dev/index.d.ts",
"development": "./dev/index.js",
"default": "./index.js"
}
但是
./code.js
导入是在 micromark-util-sanitize-uri
包中导入的,这是 @mdx-js
的依赖项。
问题是
micromark-util-sanitize-uri
包只有 2 个有意义的文件,根目录中的 index.js
not 不会导入此 import {codes} from 'micromark-util-symbol/codes.js'
,但还包含一个 dev
目录,该目录只有一个 index.js
确实导入此文件code.js
不存在的导出。
有谁知道为什么它使用这个 dev 目录?我猜这与
process.env.NODE_ENV
变量有关,但这是一个非常受欢迎的软件包,似乎没有任何与此相关的问题,所以我猜我的程序上一定出了问题结束。
我不确定这是否与我遇到的问题相同,但我在 fumadocs 上也遇到了类似的问题,我的 IDE 报告了导入类似内容的问题
import {defineCollections} from "fumadocs-mdx/config";
显然我要做的就是将
moduleResolution
中的 tsconfig.json
更改为“bundler”...这是我的 tsconfig.json,以防它有帮助:
{
"compilerOptions": {
"baseUrl": "./src/",
"paths": {
"@/*": ["./*"]
},
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"noEmit": true,
"incremental": true,
"module": "esnext",
"esModuleInterop": true,
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"plugins": [
{
"name": "next"
}
]
},
"include": ["next-env.d.ts", ".next/types/**/*.ts", "**/*.ts", "**/*.tsx"],
"exclude": ["node_modules"]
}