You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Glitch.com部署Discord Bot遇Node包及版本兼容问题求助

在Glitch部署Discord Bot遇到的Node包及版本问题

问题描述

本地运行正常的Discord Bot,在Glitch.com部署时出现Node包相关报错,尝试多种命令后问题未解决,调整Node版本后又出现新的环境兼容问题。

当前package.json配置

{
  "name": "mudbot",
  "version": "1.0.0",
  "description": "MUDbot",
  "main": "bot.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "discord.js": "^13.12.0",
    "env": "^0.0.2",
    "events": "^3.3.0",
    "fs": "^0.0.2",
    "i18next-node-fs-backend": "^2.1.3",
    "node": "^19.0.0",
    "node-events": "^0.0.2",
    "node-fs": "^0.1.7"
  }
}

初始报错(执行node bot.js时)

Error: Cannot find module 'node:events'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/rbd/pnpm-volume/d5c775c7-bd94-4b87-abee-5713ace40ae7/node_modules/discord.js/src/client/BaseClient.js:3:22)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)

已尝试npm i、npm i discord.js、enable-mnpm,问题未解决,不清楚代码何处使用node:events。

调整Node版本后的新问题

在package.json中添加"engines": { "node": "16.6.1" }后,执行npm i discord.js报错:

$ npm i discord.js
node: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)

使用enable-npm后可临时正常运行,但再次执行npm命令仍抛出上述错误。执行npm i和npm i discord.js后,运行node .或node bot.js报错:

$ node bot.js
-su: /app/node_modules/.bin/node: No such file or directory

解决方案

1. 清理错误依赖,修正版本配置

  • 从dependencies中移除node、node-events、node-fs:这些是Node.js内置模块,手动安装会导致环境冲突;fs也是内置模块,同样可以移除。
  • 修正engines字段:discord.js v13要求Node.js 16.6.0+,指定大版本避免GLIBC兼容问题:
    "engines": { "node": "16.x" }
    

2. 重置Glitch的Node环境

  • 终端执行enable-npm切换到npm(默认pnpm可能存在缓存问题)。
  • 删除旧依赖文件:
    rm -rf node_modules package-lock.json
    
  • 重新安装依赖:
    npm install
    

3. 修复node命令路径问题

若出现路径找不到的错误,说明系统优先读取了错误安装的本地node包,可直接使用全局node路径运行:

/usr/bin/node bot.js

或在package.json的scripts中添加启动命令,通过npm调用避免路径问题:

"scripts": {
  "start": "node bot.js",
  "test": "echo \"Error: no test specified\" && exit 1"
}

之后执行npm start启动Bot即可。

4. 关于node:events的说明

node:events是Node.js 16+引入的内置模块前缀写法,discord.js v13内部使用了该写法,因此必须保证Node.js版本≥16.6.0,初始报错是因为Glitch默认Node版本过低或错误安装node包导致环境混乱。

内容的提问来源于stack exchange,提问作者usselman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 22:26:25