npm 错误! asyncWrite 不是函数

Posted

技术标签:

【中文标题】npm 错误! asyncWrite 不是函数【英文标题】:npm ERR! asyncWrite is not a function 【发布时间】:2018-11-08 20:45:19 【问题描述】:

npm install -g firebase-tools npm 错误! pna.nextTick 不是函数

npm 错误!可以在以下位置找到此运行的完整日志: npm 错误! /home/developer/.npm/_logs/2018-05-30T05_42_20_569Z-debug.log

.log 数据

/home/developer/.npm/_logs/2018-05-30T05_42_20_569Z-debug.log0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node',
1 verbose cli   '/usr/local/bin/npm',
1 verbose cli   'install',
1 verbose cli   '-g',
1 verbose cli   'firebase-tools' ]
2 info using npm@6.1.0
3 info using node@v10.3.0
4 verbose npm-session 4ca1ad6ed9bde18f
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 verbose stack TypeError: asyncWrite is not a function
7 verbose stack     at onwrite (/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:480:7)
7 verbose stack     at WritableState.onwrite (/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:180:5)
7 verbose stack     at WriteStream.to [as _worker] (/usr/local/lib/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/cache.js:154:13)
7 verbose stack     at WriteStream._write (/usr/local/lib/node_modules/npm/node_modules/mississippi/node_modules/flush-write-stream/index.js:35:13)
7 verbose stack     at doWrite (/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:428:64)
7 verbose stack     at writeOrBuffer (/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:417:5)
7 verbose stack     at WriteStream.Writable.write (/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:334:11)
7 verbose stack     at WriteStream.to [as _worker] (/usr/local/lib/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/cache.js:171:25)
7 verbose stack     at WriteStream._write (/usr/local/lib/node_modules/npm/node_modules/mississippi/node_modules/flush-write-stream/index.js:35:13)
7 verbose stack     at doWrite (/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:428:64)
7 verbose stack     at writeOrBuffer (/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:417:5)
7 verbose stack     at WriteStream.Writable.write (/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:334:11)
7 verbose stack     at WriteStream.to [as _worker] (/usr/local/lib/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/cache.js:182:19)
7 verbose stack     at WriteStream._write (/usr/local/lib/node_modules/npm/node_modules/mississippi/node_modules/flush-write-stream/index.js:35:13)
7 verbose stack     at doWrite (/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:428:64)
7 verbose stack     at writeOrBuffer (/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:417:5)
8 verbose cwd /home/developer/Development/host2
9 verbose Linux 4.15.0-22-generic
10 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "firebase-tools"
11 verbose node v10.3.0
12 verbose npm  v6.1.0
13 error asyncWrite is not a function
14 verbose exit [ 1, true ]

npm -v :6.1.0 节点 -v :v10.3.0 操作系统:Ubuntu 18.04 LTS 显卡:AMD® 瞻博网络 处理器:Intel® Core™ i7 CPU 960 @ 3.20GHz × 8 操作系统类型:64 位

【问题讨论】:

尝试运行npm cache clean,然后再次尝试安装。 在最近的几个github问题中找到了这个错误等的解决方案(pna.nextTick)。解决方案就是手动删除 node_modules 文件夹,然后从头开始重新安装所有依赖项。无需降级我正在运行节点 10.3 和 npm 6+。或者使用不会抛出此错误的纱线,但最好只擦洗 node_modules。这与 npm 的不良扁平化有关 【参考方案1】:

DKebler 提到的解决方案对我也不起作用,仍然出现相同的错误和调试日志。

我也不得不降级。

命令行

sudo npm cache clean -f

sudo n 8.11.2

【讨论】:

对我来说也是如此。我有一个原始的空文件夹,没有 node_modules,但npm install express 一直失败。降级到 8.11.2,现在我们的服务器又可以工作了。谢谢:)【参考方案2】:

n 已在 v2.1.12 中更新以解决此问题。以前,新的 npm 只是被复制到现有文件夹中。当 node_modules 的布局发生变化时,这可能会导致问题发生在节点 10 中。

删除 npm 并重新安装将修复 npm 问题。升级n可以防止在使用n切换版本时再次出现该问题。

https://github.com/tj/n/issues/508#issuecomment-423933394

例如

$ rm /usr/local/bin/node
$ rm -rf /usr/local/lib/node_modules/npm
$ n latest
$ npm install -g n
/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
+ n@2.1.12
updated 1 package in 0.466s

【讨论】:

【参考方案3】:

我猜这是 npm v5 和 node v10 之间的不兼容。 为了解决这个问题,我将 node 降级到 v9,将 npm 升级到 v6,然后将 node 升级到 v10:

n 9.10.1
npm i -g npm
n stable

【讨论】:

【参考方案4】:

那是因为,当我写这个答案时,节点 10 不是很稳定。所以最好坚持使用节点 8。因为你可以降级到 8.11.3 使用

sudo n 8.11.3

然后您可以轻松安装 npm 模块。

【讨论】:

感谢成功。奇怪(或不好)这在 9 月仍然是一个问题【参考方案5】:

重新安装 npm -- mentioned in n installation guide -- 对我有用。

$ curl -0 -L https://npmjs.com/install.sh | sudo sh

【讨论】:

【参考方案6】:

windows平台解决方案

    卸载节点 从程序文件中删除文件夹(如果存在)(C:\Program Files\nodejs) 删除 npm 的数据文件夹:C:\UsersYour uername\AppData\Roaming\npm

再次安装节点(使用不同的安装文件夹,如 "C:\Program Files\nodejs-2"

根本原因是 node 和 nvm 安装在同一个安装文件夹中。

【讨论】:

帮助很好...首先我在版本 9 文件夹上安装了版本 10。但很可能那里留下了一些混乱。卸载并删除剩余的并进一步重新安装后,一切似乎都按预期工作。谢谢! Step0:记下 NodeJS 当前的安装位置(如果它安装在 C:\Program Files 以外的位置)。 我尝试使用相同的安装文件夹 (c:\Program Files\nodejs),它也解决了这个问题,以防其他人想尝试它【参考方案7】:

这是版本问题。 npm 6.1.0节点 10.2.*

试试n 10.2.1

【讨论】:

【参考方案8】:
    安装旧版本节点,可以成功运行。 更新您的 npm(全局)。 安装高版本节点。

以下是在我的本地环境中工作的。

首次安装旧版本节点。

sudo n 8.11.3

然后更新 npm。

sudo npm i -g npm

现在,你更新你的节点,一切正常。

sudo n 10.12.0

【讨论】:

【参考方案9】:

您必须将节点版本降级到最新的稳定版本,即8.11.2 因为最新版本的 node 还不兼容所有 npm 模块。

【讨论】:

见我上面的评论。降级是没有必要的。请参阅此 npm github 问题github.com/npm/npm/issues/20848【参考方案10】:

我自己在尝试通过 npm 安装 express 时遇到了这个错误。我的简单解决方案是将节点降级到稳定版本。如果您有“n”,即节点版本管理器,则可以使用以下命令完成:

n stable

希望这会有所帮助!如果您以前没有使用过,我强烈推荐使用“n”。它让生活更轻松:)

【讨论】:

【参考方案11】:

通常,修复它的最佳方法是:

rm -R /usr/local/lib/node_modules/npm 并重新安装 Node.js。

我的建议是每次从源代码安装 Node.js(是的,运行 make && make install)。 如果你使用 Debian/Ubuntu,记得先安装 build-essential

$ sudo apt-get install build-essential
$ wget https://nodejs.org/dist/v10.6.0/node-v10.6.0.tar.gz
$ tar -zxvf node-v10.6.0.tar.gz
$ cd node-v10.6.0
$ make
$ sudo make install

问候。

【讨论】:

【参考方案12】:

我已经通过以下方式解决了这个问题:

    清理缓存npm cache clean -fnode升级到最新版本:nvm install <version>npm升级到最新版本:npm i -g npm 删除依赖项:rm -rf node_modules 再次安装依赖:npm install

【讨论】:

【参考方案13】:

使用 n 切换节点版本时使用 sudo 例如sudo n 10.4.1

【讨论】:

【参考方案14】:

我能够通过强制 readable-stream@2.3.0 解决问题。

【讨论】:

【参考方案15】:

这是由于公司网络安全政策

解决方法

    转到https://codeload.github.com/jashkenas/underscore/zip/master 和 下载压缩文件 如果您希望您的包是全局的,请在 C:\UsersYourUsername\AppData\Roaming\npm\node_modules\underscore 上创建下划线文件夹 解压到文件夹 添加“依赖项”: "underscore": "^downloadedVersionNumber" 在你的 package.json 文件中 创建一个node_module>下划线并将Extract复制到文件夹

【讨论】:

这是 Windows 的答案......在问题中:“os:Ubuntu”......但感谢所有 Windows 用户。【参考方案16】:

windows平台解决方案:

在我的情况下,计算机有 win7 并且错误地安装了更新版本的 nodejs。

为了解决这个问题,我做了:

从删除nodejs windows 变量开始(系统属性 -> 高级选项卡) 卸载nodejs 找到program下的nodejs文件夹并删除(提示:使用cmd来获得更快的结果) 输入 regedit(按住“windows 键”和键盘上的字母“R”,然后输入“regedit”...小心使用 regedit!! 打开注册表后.. 编辑菜单然后点击查找 在对话框中输入“nodejs” 如果它找到一个键.. 删除它。按“F3”找到下一个并继续,直到将它们全部删除。 如果有一个不允许您删除,您需要进入“保存模式或具有管理员权限”才能删除这些密钥。 重启电脑后,重新安装nodejs最新版本。它应该可以正常工作。

这就是我所做的并且成功了!

【讨论】:

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

解决 windows npm ERR! asyncWrite is not a function 问题

安装完最新的node之后,控制台中npm i webpack -g安装失败,提示asyncwrite is not afunction ,该怎么办

npm 错误! cb.apply 不是函数

Angular 10 npm 错误 hasBindingPropertyName 不是函数

如何修复“TypeError:fsevents 不是构造函数”反应错误

错误:未捕获(承诺中)类型错误:n.swapComponent 不是函数