【发布时间】:2020-11-05 10:01:34
【问题描述】:
我正在尝试使用preact-cli 创建一个新项目:
npx preact-cli create typescript temp
失败并显示错误消息:
npm ERR! cb.apply is not a function
我正在使用以下版本:
- 节点 v15.0.1
- npm 7.0.3
- npx 10.2.2
在撰写本文时,在 npm 上发布的 preact-cli 的最新版本是 3.0.3。
我尝试解决此问题:
错误消息指向一个日志文件,并且该错误非常突出:
...
7 http fetch GET 304 https://registry.npmjs.org/preact-cli 147ms (from cache)
8 silly pacote tag manifest for preact-cli@latest fetched in 167ms
9 verbose stack TypeError: cb.apply is not a function
9 verbose stack at /home/lhk/.npm-global/lib/node_modules/npx/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
9 verbose stack at FSReqCallback.oncomplete (node:fs:184:5)
显然这是graceful-fs/polyfills.js 中的错误。好的,所以我看了一下,它在一个名为 statFix 的函数中。这显然修复了与“旧版本的 Node”的一些不兼容性。谷歌搜索statFix 让我去this site。他们说要简单地注释掉 statFix 函数的用法。我试过了,但错误仍然存在。
所以我想我会改用npm install -g preact-cli 看看是否效果更好。有一长串警告和不推荐使用的消息。其中一个警告是:
npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
在我看来,这很可能是罪犯。它甚至明确表示它将在节点 v14+ 上中断(我在 v15 上)。
是否可以将 preact-cli 与高于 v14 的节点版本一起使用?
更新: 我经历了卸载节点 v15 而安装 v14 LTS 的痛苦。 问题保持不变。它似乎与 v15 没有直接关系。 我也相应地更新了问题标题。
【问题讨论】: