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

使用node-pushnotifier遇TypeError:PushNotifier不是构造函数

解决node-pushnotifier在.mjs文件中"PushNotifier is not a constructor"错误

问题原因

该错误源于ES模块(.mjs)的导入方式与node-pushnotifier包的导出结构不匹配——这个包采用CommonJS规范导出,而非ES模块默认导出格式,导致直接默认导入无法获取到构造函数。

修复方案

方案1:调整导入语句适配导出结构

先在代码开头添加日志,确认包的导出内容:

import PushNotifier from "node-pushnotifier";
console.log(PushNotifier);

运行后根据输出调整导入方式:

  • 若输出是包含PushNotifier属性的对象,改用命名导入:
    import { PushNotifier } from "node-pushnotifier";
    
  • 若输出是模块对象,提取默认导出:
    import * as PushNotifierModule from "node-pushnotifier";
    const PushNotifier = PushNotifierModule.default;
    

方案2:在ES模块中兼容CommonJS导入

利用Node.js内置的createRequire工具,在.mjs文件中直接使用CommonJS的导入逻辑:

import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const PushNotifier = require("node-pushnotifier");

方案3:核对包版本与官方说明

执行命令查看当前安装的包版本:

npm list node-pushnotifier

查看本地node_modules/node-pushnotifier/README.md,确认对应版本的官方导入指引,部分旧版本可能仅支持CommonJS导入方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:25:22