如何运行Airgram?配置type:module后仍遇模块未找到错误
解决Airgram模块找不到的问题
我正尝试运行Airgram项目,已在package.json中添加了{"type": "module"}配置,代码如下:
import { Airgram, Auth, prompt, toObject } from 'airgram' const airgram = new Airgram({ apiId: process.env.APP_ID, apiHash: process.env.APP_HASH }) airgram.use(new Auth({ code: () => prompt(`Please enter the secret code:\n`), phoneNumber: () => prompt(`Please enter your phone number:\n`) })) void (async () => { const me = toObject(await airgram.api.getMe()) console.log(`[me]`, me) })() // Getting all updates airgram.use((ctx, next) => { if ('update' in ctx) { console.log(`[all updates][${ctx._}]`, JSON.stringify(ctx.update)) } return next() }) // Getting new messages airgram.on('updateNewMessage', async ({ update }, next) => { const { message } = update console.log('[new message]', message) return next() })
(注:代码中异步自执行函数缺少调用括号,已补充(),避免无法执行)
运行node face.js时出现以下错误:
root@faka:~/airgram# node face.js internal/process/esm_loader.js:74 internalBinding('errors').triggerUncaughtException( ^ Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'airgram' imported from /root/airgram/face.js at packageResolve (internal/modules/esm/resolve.js:664:9) at moduleResolve (internal/modules/esm/resolve.js:705:18) at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:798:11) at Loader.resolve (internal/modules/esm/loader.js:100:40) at Loader.getModuleJob (internal/modules/esm/loader.js:246:28) at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:47:40) at link (internal/modules/esm/module_job.js:46:36) { code: 'ERR_MODULE_NOT_FOUND' }
解决步骤
确认Airgram已正确本地安装
在项目根目录/root/airgram/下执行安装命令,确保模块安装到当前项目的node_modules中:npm install airgram # 若使用yarn则执行: yarn add airgram不要仅使用全局安装(
npm install -g airgram),ESM模块无法直接识别全局安装的包。检查package.json依赖项
打开项目根目录的package.json,确认dependencies字段中存在airgram条目,示例:"dependencies": { "airgram": "^5.0.0" }若缺失,重新执行安装命令,或手动添加后执行
npm install同步依赖。清理缓存并重新安装
若存在安装缓存或依赖损坏,执行以下命令重置:npm cache clean --force rm -rf node_modules package-lock.json npm install验证Node.js版本
Airgram要求Node.js版本不低于v12,建议使用v14及以上版本,执行node -v查看当前版本,版本过低会导致模块解析异常。
内容的提问来源于stack exchange,提问作者mmmm
相关产品推荐
相关产品推荐

