npm ERR! asyncWrite is not a function

2020-05-29 13:48发布

问题:

npm install -g firebase-tools npm ERR! asyncWrite is not a function npm ERR! pna.nextTick is not a function

npm ERR! A complete log of this run can be found in: npm ERR! /home/developer/.npm/_logs/2018-05-30T05_42_20_569Z-debug.log

.log data

/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
node -v :v10.3.0
os :Ubuntu 18.04 LTS
graphics :AMD® Juniper
processor:Intel® Core™ i7 CPU 960 @ 3.20GHz × 8
os type : 64-bit

回答1:

The solution mentioned by DKebler did not work for me either, still got the same error and debug log.

I had also to downgrade.

Command Lines

sudo npm cache clean -f

sudo n 8.11.2


回答2:

n was updated in v2.1.12 to address this issue. Previously, the new npm was just being copied over the existing folder. This could cause problems when the layout of the node_modules changed as happened in node 10.

Deleting npm and reinstalling will fix the npm issue. Upgrading n will prevent the issue from happening again when switching versions using n.

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

e.g.

$ 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:

I am guessing it is an incompatibility between npm v5 and node v10. To solve this I downgraded node to v9, upgraded npm to v6, then upgraded node to v10:

n 9.10.1
npm i -g npm
n stable


回答4:

that's because, when I'm writing this answer, node 10 is not quite stable. So better stick to node 8. for that you can downgrade to 8.11.3 using

sudo n 8.11.3

then you can easily install npm modules.



回答5:

Reinstalling npm -- mentioned in n installation guide -- worked for me.

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


回答6:

Solution for windows platform

  1. Uninstall Node
  2. Delete folder from programfiles if exist (C:\Program Files\nodejs)
  3. Delete npm's data folder: C:\Users{Your uername}\AppData\Roaming\nmp

Install node Again(use different installation folder like "C:\Program Files\nodejs-2")

Root cause is node and nvm installed in same installation folder.



回答7:

It's versions problem. npm 6.1.0node 10.2.*

try n 10.2.1



回答8:

  1. Install an old version node, which can run success.
  2. Update your npm (global).
  3. Install the high version node.

The following is worked in my local environment.

First install and old version node.

sudo n 8.11.3

And then update npm.

sudo npm i -g npm

Now, you update your node, everything work fine.

sudo n 10.12.0



回答9:

You have to downgrade the node version to latest stable version i.e 8.11.2 because latest version of node is not compatible yet with all npm modules.



回答10:

Just ran into this error myself when trying to install express via npm. My simple solution was to downgrade node to the stable release. If you have "n", the node version manager, it can be done so with the command:

n stable

Hopefully this helps! I highly recommend "n" if you haven't used it before. It makes life easier :)



回答11:

Usually, the best way for fix it is:

rm -R /usr/local/lib/node_modules/npm and reinstall Node.js.

My recommendation is install every time Node.js from source code (yes, running make && make install). If you using Debian/Ubuntu, remember first install 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

Regards.



回答12:

I've fixed this by:

  1. Cleaning cache npm cache clean -f
  2. Upgrading node to latest version: nvm install <version>
  3. Upgrading npm to latest version: npm i -g npm
  4. Removing dependencies: rm -rf node_modules
  5. Installing dependencies again: npm install


回答13:

Use sudo when switching node version with n example sudo n 10.4.1



回答14:

I was able to fix the issue by forcing readable-stream@2.3.0.



回答15:

This is due to company network security policy

Work Around

  1. Go to https://codeload.github.com/jashkenas/underscore/zip/master and download the zip file
  2. Create underscore folder on C:\Users{YourUsername}\AppData\Roaming\npm\node_modules\underscore if you want your packge to be global
  3. Extract to folder
  4. Add "dependencies": { "underscore": "^{downloadedVersionNumber}" on you package.json file
  5. create a node_module>underscore and copy the Extract to folder



回答16:

Solution for windows platform:

In my case the computer had win7 and by mistake installed a newer version of nodejs.

To solve this problem I did:

  • Starting with deleting nodesjs windows variables (system properties -> the advance tab)
  • Uninstal nodejs
  • Find the nodejs folder under program and delete it (tip: do it using cmd for faster results)
  • Enter regedit (press and hold "windows key" and letter "R" in your keyboard then type "regedit" ... Be carefull with regedit!!
  • Once regedit is open .. Edit menu then click on find
  • In the dialog box type "nodejs"
  • If it finds a key .. delete it. Press "F3" to find the next one and keep going until you delete them all.
  • In case there is one not allowing you to delete you need to enter in "save mode or with admin rights" to be able to delete those keys.
  • After that restart the computer, reinstall nodejs the newest version. It should be working fine.

That's what I did and it worked!