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

npm install -g firebase-tools npm 错误! asyncWrite 不是函数 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 的不良扁平化有关

标签: node.js npm firebase-tools


【解决方案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平台解决方案

        1. 卸载节点
        2. 从程序文件中删除文件夹(如果存在)(C:\Program Files\nodejs
        3. 删除 npm 的数据文件夹:C:\Users{Your 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】:
          1. 安装旧版本节点,可以成功运行。
          2. 更新您的 npm(全局)。
          3. 安装高版本节点。

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

          首次安装旧版本节点。

          sudo n 8.11.3

          然后更新 npm。

          sudo npm i -g npm

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

          sudo n 10.12.0

          【讨论】:

            【解决方案9】:

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

            【讨论】:

            【解决方案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】:

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

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

                【讨论】:

                  【解决方案13】:

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

                  【讨论】:

                    【解决方案14】:

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

                    【讨论】:

                      【解决方案15】:

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

                      解决方法

                      1. 转到https://codeload.github.com/jashkenas/underscore/zip/master 和 下载压缩文件
                      2. 如果您希望您的包是全局的,请在 C:\Users{YourUsername}\AppData\Roaming\npm\node_modules\underscore 上创建下划线文件夹
                      3. 解压到文件夹
                      4. 添加“依赖项”:{ "underscore": "^{downloadedVersionNumber}" 在你的 package.json 文件中
                      5. 创建一个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最新版本。它应该可以正常工作。

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

                      【讨论】:

                        猜你喜欢
                        • 2020-12-05
                        • 2021-06-18
                        • 1970-01-01
                        • 1970-01-01
                        • 2022-07-02
                        • 1970-01-01
                        • 2020-12-30
                        相关资源
                        最近更新 更多