【问题标题】:how to fix cb.apply is not a function, npx + preact-cli如何修复 cb.apply 不是函数,npx + preact-cli
【发布时间】: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 没有直接关系。 我也相应地更新了问题标题。

【问题讨论】:

    标签: node.js npm preact npx


    【解决方案1】:

    Preact 接受 Node v12 作为最新版本。

    【讨论】:

      猜你喜欢
      • 2020-12-05
      • 1970-01-01
      • 2022-07-02
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多