npm 错误! cb.apply 不是函数

Posted

技术标签:

【中文标题】npm 错误! cb.apply 不是函数【英文标题】:npm ERR! cb.apply is not a function 【发布时间】:2020-12-05 07:37:38 【问题描述】:

我收到了这个错误

npm ERR! cb.apply is not a function

在 Linux 中进行 npm install 虽然我的 npm 版本是 6.9.0。我的节点版本是 v12.18.3。如何解决这个问题?

【问题讨论】:

【参考方案1】:

如果您共享的是 Windows 或 Linux,将会很有帮助,但错误似乎发生在 Windows 上。 Possible solution:

1. Go to C:\Users(your username)\AppData\Roaming
2. Delete the npm folder (possibly back it up) and if there is one npm cache folder.
3. Run `npm cache clear --force` (--force is now required to clean cache)

之后,npm install 应该可以正常工作了。

【讨论】:

在我的 Windows 电脑上,它是npm cache clean(不是npm clean cache)。 我删除了目录,但我还必须删除与 nodejs 和其他一些资源相关的环境变量。只需添加到上述解决方案中,请确保从机器中清除与 nodejs 相关的“所有内容”。 是的,这个方法是正确的,但是在最后一步你可以运行“npm cache clean --force”来清理你的缓存。并运行“npm cache verify”来验证你是否成功完成了任务。【参考方案2】:

Mac/Macbook 用户

因为这个问题相当活跃,并且这个问题的谷歌搜索结果最高(我知道 OP 使用的是 Linux),并且我们在这个列表中涵盖了所有其他操作系统。这是在 Mac 上修复它的方法。

在 Mac 上,您没有 AppData\Roaming 文件夹,因此只需运行 npm root -g,然后导航到隐藏目录并删除那里的 node_modules。如果使用nvm,则需要重新运行nvm use x.x.x(其中x.x.x 是您的版本)。

【讨论】:

谢谢。我的问题是我需要运行nvm use x.x.x 我的隐藏目录中只有一个 dtrace 文件夹。没有节点模块【参考方案3】:

Windows 解决方案:

在我的情况下,我不想删除“C:/users/me/AppData/Roaming/”中的所有 npm 目录,因为我有许多已经存在并安装的全局模块。

受上述@user14360499 启发的工作原理:

    进入“C:\Users\me\AppData\Roaming\npm\node_modules” 删除“npm”目录 npm install我的项目,继续照常工作

【讨论】:

【参考方案4】:

ubuntu 18.04 解决方案

sudo apt-get remove nodejs
sudo apt-get remove npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/bin/npm
sudo apt-get install nodejs
sudo apt-get install npm

并尝试 node 和 npm 版本

node -v
npm -v

如果安装后提示没有这样的节点/npm,那么

sudo ln -s /usr/bin/node /usr/local/bin/node
sudo ln -s /usr/bin/npm /usr/local/bin/npm

试试命令是否有效

npm -v
node -v

如果你想更新 npm/node 稳定版本

sudo npm install n -g
sudo n stable

【讨论】:

感谢您的解决方案,为我工作。【参考方案5】:

Ciao,这个问题可能与graceful-fs 包有关。您可以尝试重新安装它:

npm install graceful-fs --save-dev

【讨论】:

【参考方案6】:

我对 Nodist 也有同样的问题。更改我的 Node 版本后,我的 npm 版本实际上与它不兼容。因此,如果您使用的是 Nodist,请确保在切换 Node 版本后运行nodist npm scope match,其中范围是全局、本地或环境。

【讨论】:

在这里尝试了所有其他修复。只有这一个为我解决了它。谢谢!!!【参考方案7】:

Ubuntu 18.04 解决方案=>

    访问“usr/lib/node_modules”。 删除“n”、“npm”、“npm-clean”、“npm-install-peers”。这意味着删除所有与节点和 npm 相关的文件夹。 再次安装 npm。

【讨论】:

【参考方案8】:

就我而言,它确实是graceful-fs 包。跑步

npm i -g --force graceful-fs 

解决了这个问题。我之前也跑过nodist npm scope match,但我不确定是否有必要。

【讨论】:

【参考方案9】:

我从不同的帖子和谷歌页面尝试了很多解决方案,但对我没有任何帮助。

我最终清理了 node、nodejs 和 npm 的所有痕迹。清除呼叫后可能需要手动移除。然后使用 nvm 安装。

https://linuxize.com/post/how-to-install-node-js-on-ubuntu-20-04/#installing-nodejs-and-npm-using-nvm

它为我解决了这个问题。它得到了 nodejs v 15.4.0 和 npm 7.0.15 的兼容版本(在使用 apt-get 之前它正在安装 npm 6.9.0)

【讨论】:

【参考方案10】:

当我尝试使用 npx 时遇到同样的错误 (macOS Big Sur)

我如何修复它(使用 nvm) 当我跑步时:

nvm ls

nvm ls output

修复:

nvm alias default node
nvm install 'lts/*'

nvm install output

【讨论】:

【参考方案11】:

我在尝试运行 npx 时遇到了这个问题。

我发现 nvm 已从 PATH 中删除。

我将它添加回了我的 .zshrc 文件,并且它起作用了。

【讨论】:

嗨,Batch,看起来您在这里既有答案又有问题。请把它们分开。不过,在这样做之前,请查看我们社区中的某个问题是否已经解决了相同的问题。谢谢。【参考方案12】:

2021 年 2 月修复:

npm install

然后将更改提交到package-lock.json。这应该会更新您的所有依赖项,从而解决此问题。

更多信息:https://help.heroku.com/ZV7S7D6T/why-is-my-node-build-is-suddenly-displaying-npm-err-cb-apply-is-not-a-function(这发生在 heroku 上)

【讨论】:

我在 Windows 上全新安装了 nvm、node 和 npm。我尝试运行 $ npx create-react-app myApp 这个命令完全解决了我的问题,即使本地目录中没有 package.json 文件。 将近一年后在 Windows 上为我工作。我从 v12 节点 LTS 升级到 v16 LTS,然后突然 npx 停止工作。我尝试删除缓存并清除它,但在我运行npm install 之前没有解决任何问题,然后繁荣就像魔法一样【参考方案13】:

Linux 用户:

    卸载 NPM,到 /usr/local/lib/node_modules 并执行以下操作:

sudo rm -r n npm npx

    卸载后,重新安装

npm 安装

    即使在这样做之后,在特定项目中尝试安装特定 npm 包时,您可能会遇到以下错误:

bash: /usr/local/bin/npm: 没有这样的文件或目录

如果是这样,在终端中运行:

哈希-r

    现在您可以重试安装所需的 npm 包。

【讨论】:

【参考方案14】:

在 macOS BigSur 上,我在执行时遇到了这个问题:

npx install-peerdeps --dev eslint-config-airbnb

为了修复,我跑了

brew update

之后我被提示运行

brew upgrade

运行这两个命令解决了这个问题。

【讨论】:

【参考方案15】:

在我的情况下(Mac),这是因为我在n 旁边安装了npx(替代nvm)。

$ which npx
/usr/local/bin/npx

我删除了这个可执行文件,现在:

$ which npx
/Users/MY_USER/n/bin/npx

现在可以使用了。

【讨论】:

【参考方案16】:

对我来说,解决方案是删除项目的节点模块和凉亭组件文件夹。

【讨论】:

【参考方案17】:

对于 mac 操作系统,删除节点版本并重新安装对我有用。我使用了 n npm 版本管理器。

【讨论】:

【参考方案18】:

在 windows 上,使用nvm,我刚刚安装了更新的 nodejs 版本(14.17.0 之前,现在 14.18.2)

【讨论】:

【参考方案19】:

这么多的解决方案让我更加困惑。我下载并安装了最新的 LTS NodeJS,它运行良好。 https://nodejs.org/en/

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案20】:

我在运行npx sb init 时遇到此错误。出于某种原因,该命令在本地工作,但在 CI 中不起作用。我从这里尝试了大多数解决方案。但只有以下方法有效。

我按照此处的建议将npx sb init 替换为yarn global add @storybook/cli && yarn exec sb init:https://github.com/yarnpkg/yarn/issues/3937#issuecomment-751289438

(NVM,Node.js 14,Yarn 1)

【讨论】:

【参考方案21】:

ubuntu 的解决方案 =>

    从您的系统中彻底删除 nodejs 和 npm。
sudo apt-get remove nodejs
sudo apt-get remove npm
    从此参考安装节点 (https://computingforgeeks.com/install-node-js-14-on-ubuntu-debian-linux/) - 这将反过来安装最新的 npm。

【讨论】:

【参考方案22】:

同样的错误只是在错误的文件夹中-.-(不是打字稿项目)

【讨论】:

以上是关于npm 错误! cb.apply 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

gitbook出现TypeError: cb.apply is not a function解决办法

gitbook出现TypeError: cb.apply is not a function解决办法

cb.apply is not a function

gitbook init出现TypeError: cb.apply is not a function解决办法

gitbook init出现TypeError: cb.apply is not a function解决办法

npm 错误! asyncWrite 不是函数