升级Nuxt 3.4.2与@types/node后,构建因fsevents.node报错
Nuxt 3.4.2 + @types/node 18.15.13 启动报错:No loader is configured for ".node" files
升级Nuxt至3.4.2、@types/node至18.15.13后,执行npm run dev命令时出现构建错误,提示「No loader is configured for ".node" files: node_modules/fsevents/fsevents.node」,错误日志如下:
✘ [ERROR] No loader is configured for ".node" files: node_modules/fsevents/fsevents.node node_modules/fsevents/fsevents.js:13:23: 13 │ const Native = require("./fsevents.node"); ╵ ~~~~~~~~~~~~~~~~~ ERROR [unhandledRejection] Build failed with 1 error: 9:03:37 AM node_modules/fsevents/fsevents.js:13:23: ERROR: No loader is configured for ".node" files: node_modules/fsevents/fsevents.node node_modules/fsevents/fsevents.js:13:23: ERROR: No loader is configured for ".node" files: node_modules/fsevents/fsevents.node at failureErrorWithLog (node_modules/esbuild/lib/main.js:1636:15) at node_modules/esbuild/lib/main.js:1048:25 at node_modules/esbuild/lib/main.js:1512:9 at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
项目的package.json内容如下:
{ "private": true, "scripts": { "build": "nuxt build", "dev2": "nuxt dev", "dev": "NODE_TLS_REJECT_UNAUTHORIZED=0 nuxt dev --https --ssl-cert localhost.pem --ssl-key localhost-key.pem", "generate": "nuxt generate", "preview": "nuxt preview", "postinstall": "nuxt prepare" }, "devDependencies": { "@fortawesome/fontawesome-free": "^6.2.1", "@types/node": "^18.15.11", "nuxt": "^3.4.0", "sass": "^1.57.1", "vue-gtag-next": "^1.14.0", "vue-sound": "^0.1.10" }, "dependencies": { "@mdi/font": "^7.1.96", "@storyblok/nuxt": "^5.3.4", "@vueuse/core": "^9.11.1", "gsap": "^3.11.5", "vuetify": "^3.1.14" } }
已尝试清理缓存、删除node_modules后重新安装,但问题仍未解决。
解决方案
方法1:配置esbuild处理.node文件
在nuxt.config.ts中添加esbuild的loader配置,指定.node文件的处理方式:
export default defineNuxtConfig({ vite: { esbuild: { loader: { '.node': 'file' } } } })
方法2:排除fsevents参与打包
fsevents是macOS专属的文件监听依赖,其他系统下不会实际生效。可以将其加入外部依赖列表,避免被esbuild打包处理:
export default defineNuxtConfig({ build: { external: ['fsevents'] } })
方法3:降级依赖版本
如果上述配置无效,可临时降级到兼容版本:
npm install nuxt@3.4.0 @types/node@18.15.11 --save-dev
方法4:移除fsevents(非macOS环境)
若开发环境是Windows或Linux,可直接卸载fsevents(macOS环境请勿操作):
npm uninstall fsevents
内容的提问来源于stack exchange,提问作者Jonathan Unai
相关产品推荐
相关产品推荐

