解释:你遇到的错误表明,open
模块中的代码错误地试图从 'node:fs/promises'
模块中导入 constants
,但 constants
并不是这个模块导出的内容。这个问题是在第三方库 open
中引起的。
解决方案:
一、你无法直接修改 open
模块的源码,但你可以手动修复它。虽然这不是理想的做法,但它可以解决你的问题。
找到 node_modules/open/index.js
文件中的以下代码:
import fs, { constants as fsConstants } from 'node:fs/promises';
将其修改为:
import fs from 'node:fs/promises';
import { constants as fsConstants } from 'node:fs';
这个修改将确保 constants
从 'node:fs'
模块正确导入。
二、使用patch-package
自动应用修复:
如果你不想每次安装依赖项后都手动修复此问题,可以使用 patch-package
工具来自动应用这个修复:
1、 首先,安装 patch-package
:
npm install patch-package
2、修改 open
模块中的代码,然后运行以下命令来创建补丁:
npx patch-package open
3、 在你的项目的 package.json
文件中,添加以下脚本,以便每次安装依赖时自动应用补丁:
"scripts": {
"postinstall": "patch-package"
}