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 -f
将node
升级到最新版本: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 ,该怎么办
Angular 10 npm 错误 hasBindingPropertyName 不是函数