错误的ERR! asyncWrite不是函数

时间:2018-05-30 05:48:26

标签: node.js npm firebase-tools

npm install -g firebase-tools 错误的ERR! asyncWrite不是一个函数 错误的ERR! pna.nextTick不是函数

npm ERR!可以在以下位置找到此运行的完整日志: 错误的ERR! /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
os:Ubuntu 18.04 LTS
图形:AMD®Duniper
处理器:英特尔®酷睿™i7 CPU 960 @ 3.20GHz×8
os类型:64位

17 个答案:

答案 0 :(得分:24)

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

我还要降级。

命令行

sudo npm cache clean -f

sudo n 8.11.2

答案 1 :(得分:8)

那是因为,当我编写此答案时,节点10不太稳定。因此最好坚持使用节点8。因为您可以使用

降级到8.11.3
sudo n 8.11.3

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

答案 2 :(得分:7)

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

n 9.10.1
npm i -g npm
n stable

答案 3 :(得分:6)

重新安装npm-mentioned in n installation guide-为我工作。

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

答案 4 :(得分:5)

它的版本问题。 npm 6.1.0 节点 10.2。*

尝试n 10.2.1

答案 5 :(得分:4)

n已在v2.1.12中更新,以解决此问题。以前,新的npm只是复制到现有文件夹上。当节点模块的布局更改为节点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

答案 6 :(得分:4)

Windows平台解决方案

  1. 卸载节点
  2. 从programfiles中删除文件夹(如果存在)( C:\ Program Files \ nodejs
  3. 删除npm的数据文件夹: C:\ Users {您的用户名} \ AppData \ Roaming \ nmp

再次安装节点(使用其他安装文件夹,例如“ C:\ Program Files \ nodejs-2”

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

答案 7 :(得分:3)

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

答案 8 :(得分:3)

  1. 安装可以成功运行的旧版本节点。
  2. 更新您的npm(全局)。
  3. 安装高版本节点。

以下内容在我的本地环境中有效。

首次安装和旧版本节点。

sudo n 8.11.3

然后更新npm。

sudo npm i -g npm

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

sudo n 10.12.0

答案 9 :(得分:1)

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

n stable

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

答案 10 :(得分:1)

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

  1. 清理缓存npm cache clean -f
  2. node升级到最新版本:n latest
  3. npm升级到最新版本:npm i -g npm
  4. 删除依赖项:rm -rf node_modules
  5. 再次安装依赖项:npm install

答案 11 :(得分:1)

通常,最好的解决方法是:

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 :(得分:0)

Windows平台解决方案:

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

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

  • 从删除Node.js Windows变量开始(系统属性->高级选项卡)
  • Uninstal nodejs
  • 在程序下找到nodejs文件夹并将其删除(提示:使用cmd可以得到更快的结果)
  • 输入regedit(按住键盘上的“ Windows键”和字母“ R”,然后键入“ regedit”...。请小心使用regedit !!
  • 一旦regedit打开。编辑菜单,然后单击“查找”
  • 在对话框中键入“ nodejs”
  • 如果找到密钥..删除它。按“ F3”查找下一个并继续操作,直到将其全部删除。
  • 如果有一个不允许您删除的密钥,则需要以“保存模式或具有管理员权限”输入才能删除这些密钥。
  • 重新启动计算机后,重新安装最新版本的nodejs。应该没问题。

这就是我所做的,并且有效!

答案 13 :(得分:0)

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

变通

  1. 转到https://codeload.github.com/jashkenas/underscore/zip/master并 下载zip文件
  2. 如果要使打包内容是全局的,请在C:\ Users {YourUsername} \ AppData \ Roaming \ npm \ node_modules \ underscore上创建下划线文件夹
  3. 提取到文件夹
  4. 添加“依赖项”:{ package.json文件上的“下划线”:“ ^ {downloadedVersionNumber}”
  5. 创建一个node_module>下划线并将提取内容复制到文件夹

答案 14 :(得分:0)

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

答案 15 :(得分:0)

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

答案 16 :(得分:-1)

如果使用Windows操作系统,则可能是由于已安装文件夹的名称(如“ C:\ Program Files”)包含空白。在“ Program”和“ Files”之间有一个空白。解决方法是安装在“ C:\ ProgramFiles”中。

希望能为您提供帮助。