Closed KazariEX closed 3 months ago
具体是在 node 的几个版本的情况呢,因为这个模块是涉及到了 node 的原生模块 module,一般都是 commonjs 导入的,会处理成 default 导出。
Node 18, 22 的最新版本在 CJS 和 ESM 中直接使用均正常,但是在通过 Nuxt 模块导入时 default
字段会消失,我不了解它内部的具体运行方式
你是通过 vite-plugin-font 使用的吗,还是直接在服务端使用 cn-font-split 进行了处理呢
在开发环境直接导入 cn-font-split 处理,这是报错
我是否需要提供一个最小实现?
嗯,如果能有一个范例的话,我这边比较好帮你做一个适配嘿
或者你只想要导入你的字体,可以尝试一下 vite-plugin-font,应该 nuxt 的 vite 也是支持的,就不用自己在服务端处理了。这样开个 nuxt 的小范例,我这边做适配即可
我想要利用 Nuxt Module 的能力实现一定的声明式导入字体,所以还是希望能够在服务端单独处理的
稍等发个新版本应该就可以了
感谢作者 所以这种修改方式是可行的吗,我对动态导入研究不深,不确定是否存在其他隐患
我升级版本到 4.14.1, 然后发现 nuxt 的编译系统好像 对 require 有些问题,导致 bug 了,现在正在排查中
4.14.2 修复了,原因是 nitro 对于 require 错误解析了 nuxt 应该都有这些奇奇怪怪的问题,后续有问题再单独开 issues 吧。 修复的 demo 通过 PR 提交到你的复现了。 @KazariEX
了解了,那看来应该是 nuxt 上游的问题
感谢作者 所以这种修改方式是可行的吗,我对动态导入研究不深,不确定是否存在其他隐患
我检查了构建产物和最终的构建效果,应该是没有问题的,cn-font-split 在 server 端构建出 css ,最终产物中没有 cn-font-split。
在某些情况下,通过动态导入的模块不含
default
字段。推荐修改为如下导入方式。