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解决办法
gitbook init出现TypeError: cb.apply is not a function解决办法