pinus icon indicating copy to clipboard operation
pinus copied to clipboard

packages/pinus/lib/modules/watchServer.ts 试图导入项目没有安装的模块heapdump

Open eddywen opened this issue 7 months ago • 5 comments

packages/pinus/lib/modules/watchServer.ts 523

heapdump = require('heapdump');

目前项目中的包似乎都没有安装过 heapdump,是否可以考虑改为使用Node.js 内置的 v8.getHeapSnapshot(Node.js 12+)?

eddywen avatar May 23 '25 00:05 eddywen

这个可能是 admin monitor的相关功能。 你在自己项目里安装这个 heapdump就行了。

另外你也可以自己实现一个 admin module或者其它方式来实现。都可以。

你也可以提交个PR,修改成你说的内置的。(但是因为这个是pomelo遗传下来的功能。所以要在保证兼容性的前提下修改。)

whtiehack avatar May 26 '25 05:05 whtiehack

感谢您的答复,我尝试按照您的方案试一下。 另外,您有没有考虑过让pinus以后增加对ESM的支持?

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: smallwhite @.> 发送时间: 2025年5月26日 13:38 收件人: node-pinus/pinus @.> 抄送: NPC @.>, Author @.> 主题: Re: [node-pinus/pinus] packages/pinus/lib/modules/watchServer.ts 试图导入项目没有安装的模块heapdump (Issue #999)

whtiehack left a comment (node-pinus/pinus#999)

这个可能是 admin monitor的相关功能。 你在自己项目里安装这个 heapdump就行了。

另外你也可以自己实现一个 admin module或者其它方式来实现。都可以。

你也可以提交个PR,修改成你说的内置的。(但是因为这个是pomelo遗传下来的功能。所以要在保证兼容性的前提下修改。)

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

eddywen avatar May 26 '25 06:05 eddywen

没懂。 没接触过你说的 ESM

whtiehack avatar May 26 '25 06:05 whtiehack

ESM(ECMAScript Modules)。目前pinus的模块支持CommonJS,比如tsconfig.json里设置: "module": "commonjs", //指定生成哪个模块系统代码。如果是支持ESM,会设置成"module": "NodeNext"之类。支持ESM的package需要在package.json设置:"type": "module"。

eddywen avatar May 26 '25 07:05 eddywen

对这个了解不多,另外好像没啥支持的必要,都是用的ts在写代码啊。。难道性能有区别?

另外框架大量的依赖 require,估计这玩意是个大工程。 我是没动力研究的。

whtiehack avatar May 27 '25 09:05 whtiehack