实力踩坑npm,自从用了npm之后项目构建和插件管理确实方便了很多,但也是被坑的不要不要的。由于平时只是用用,并没有深入了解node的npm,所以遇到问题都比较棘手,能够查到的资料也不多。阐述以下我遇到的问题,和解决的一些思路,希望能够启发大家。

遇到问题
在学习react应用的时候想用npm安装ant design,结果遇到了error,执行命令和错误如下

E:\workspace\my-react-app>npm install antd --save-dev
npm ERR! code ERR_STREAM_WRITE_AFTER_END
npm ERR! write after end
npm ERR! code ERR_STREAM_WRITE_AFTER_END
npm ERR! write after end
npm ERR! code ERR_STREAM_WRITE_AFTER_END
npm ERR! write after end
npm ERR! code ERR_STREAM_WRITE_AFTER_END
npm ERR! write after end
npm ERR! code ERR_STREAM_WRITE_AFTER_END
npm ERR! write after end

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Administrator\AppData\Roaming\npm-cache_logs\2018-05-20T13_15_29_184Z-debug.log、
使用的node版本和npm版本,都是最新版

E:\workspace\my-react-app>npm -v
6.0.1

E:\workspace\my-react-app>node -v
v10.1.0
详细错误日志log文件(2018-05-20T13_15_29_184Z-debug.log)

1626 http fetch GET 200 http://registry.cnpmjs.org/antd 2705ms
1627 verbose stack Error [ERR_STREAM_WRITE_AFTER_END]: write after end
1627 verbose stack at writeAfterEnd (_stream_writable.js:243:12)
1627 verbose stack at PassThrough.Writable.write (_stream_writable.js:292:5)
1627 verbose stack at PassThrough.Writable.end (_stream_writable.js:582:10)
1627 verbose stack at ReadEntry.entry.on (C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\node_modules\pacote\lib\extract-stream.js:19:41)
1627 verbose stack at ReadEntry.emit (events.js:187:15)
1627 verbose stack at ReadEntry.emit (C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\node_modules\tar\node_modules\minipass\index.js:296:25)
1627 verbose stack at ReadEntry.[maybeEmitEnd] (C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\node_modules\tar\node_modules\minipass\index.js:249:12)
1627 verbose stack at ReadEntry.end (C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\node_modules\tar\node_modules\minipass\index.js:162:27)
1627 verbose stack at Unpack.[consumeBody] (C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\node_modules\tar\lib\parse.js:210:13)
1627 verbose stack at Unpack.[consumeChunkSub] (C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\node_modules\tar\lib\parse.js:391:40)
1627 verbose stack at Unpack.[consumeChunk] (C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\node_modules\tar\lib\parse.js:362:30)
1627 verbose stack at Unzip.(anonymous function).on.chunk (C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\node_modules\tar\lib\parse.js:291:59)
1627 verbose stack at Unzip.emit (events.js:182:13)
1627 verbose stack at Unzip.emit (C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\node_modules\tar\node_modules\minipass\index.js:296:25)
1627 verbose stack at Unzip.write (C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\node_modules\tar\node_modules\minipass\index.js:99:17)
1627 verbose stack at Unzip.write (C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\node_modules\tar\node_modules\minizlib\index.js:284:29)
1628 verbose cwd E:\workspace\my-react-app
1629 verbose Windows_NT 10.0.16299
1630 verbose argv “C:\Program Files\nodejs\node.exe” “C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js” “install” “antd” “–save-dev”
1631 verbose node v10.1.0
1632 verbose npm v6.0.1
1633 error code ERR_STREAM_WRITE_AFTER_END
1634 error write after end
1635 verbose exit [ 1, true ]
尝试的失败方案
卸载重装nodejs,然后尝试npm install,并没有用
开始网上寻求帮助,npm i npm@latest -g,将npm升级到最新版本,结果发现我原来使用的就是最新版本,再次失败。
尝试使用cnpm, 淘宝的registry, npm install -g cnpm --registry=https://registry.npm.taobao.org,结果出现同样的error,连cnpm都不能使用,方案又失败
直接在配置文件.npmrc中,设置registry=https://registry.npm.taobao.org,或者使用官方的registry=http://registry.npm.org/, 也不行
尝试过npm cache clean --force也不管用,甚至前几种方法交替在使用依然不行
在npm的github issue上看到大佬讨论到这个问题,里面也有提交到上面尝试的几种方案——更新啊、换镜像地址啊,结果看到一个新的方案,然后尝试将npm降到npm@5.6.0,意外的成功了
最终的解决方法
强制将npm回退到npm@5.6.0的版本

E:\workspace\my-react-app>npm install -g npm@5.6.0
C:\Users\Administrator\AppData\Roaming\npm\npm -> C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js
C:\Users\Administrator\AppData\Roaming\npm\npx -> C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\bin\npx-cli.js

  • npm@5.6.0
    added 40 packages from 6 contributors, removed 246 packages and updated 125 packages in 113.579s
    最后再尝试antd的安装,结果安装成功了,cnpm也安装成功了,花费了大半天的时间。

E:\workspace\my-react-app>npm install antd --save
npm WARN npm npm does not support Node.js v10.1.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can’t make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/
npm WARN ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {“os”:“darwin”,“arch”:“any”} (curre
nt: {“os”:“win32”,“arch”:“x64”})

  • antd@3.5.3
    added 74 packages in 140.349s

E:\workspace\my-react-app>npm install -g cnpm --registry=https://registry.npm.taobao.org
npm WARN npm npm does not support Node.js v10.1.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can’t make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/
npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data f
low and an import issue introduced in 2.1.0
C:\Users\Administrator\AppData\Roaming\npm\cnpm -> C:\Users\Administrator\AppData\Roaming\npm\node_modules\cnpm\bin\cnpm

  • cnpm@5.3.0
    added 802 packages in 436.099s
    可以看到antd包安装成功了,尽管它会提示我npm与node的版本不兼容,至少让让我成功的装上了这些包。因为npm是国外的所有有些地址可能访问不到导致错误,使用淘宝镜像有时因为更新不同步也会报错,墙这个问题确实让人很心烦。不过值得庆幸的是,我知道了使用最新版本的工具并不总是最好的,具有一定的不稳定性,毕竟会受到很多外部环境的影响,一旦出错都很难找出原因。所以还是建议大家使用稳定的版本进行开发,功能够用就行。

参考:

https://github.com/npm/npm/issues/19989

https://stackoverflow.com/questions/49148753/error-npm-err-write-after-end?rq=1

npm ERR! code ERR_STREAM_WRITE_AFTER_END npm install 报错实力踩坑npm,自从用了npm之后项目构建和插件管理确实方便了很多,但也是被坑的不要不要的相关推荐

  1. npm ERR! nested aliases not supported 报错原因

    npm install xxx 安装升级依赖报错 npm ERR! nested aliases not supported 可以试试把package-lock.json文件删除再试试 原因是安装的依 ...

  2. npm install 报错 npm ERR! code Z_BUF_ERROR 问题解决

    问题描述: 使用npm install命令安装依赖时,出现错误,报错信息如下: npm ERR! code Z_BUF_ERROR npm ERR! errno -5 npm ERR! zlib: u ...

  3. npm install 报错:ERR! code EINTEGRITY 解决方案

    npm install 报错:ERR! code EINTEGRITY 解决方案 参考文章: (1)npm install 报错:ERR! code EINTEGRITY 解决方案 (2)https: ...

  4. npm install报错 npm ERR,code ERESOLVE npm ERR,ERESOLVE unable to resolve dependency tree

    文章目录 前言 问题分析 解决方法 转载于 前言 在下载npm时报错npm ERR! code ERESOLVE npm ERR! ERESOLEVE unable to resolve depend ...

  5. npm install 报错(npm ERR! errno: -4048, npm ERR! code: ‘EPERM‘, npm ERR! syscall: ‘unlink‘,)解决方法

    npm install 报错 npm ERR! errno: -4048, npm ERR! code: 'EPERM', npm ERR! syscall: 'unlink', 用下面的方式测试一下 ...

  6. npm install的时候报错 npm err code 1

    问题: 在编译vue的时候,npm install的时候报错 npm err code 1 解决: 使用' npm i -g npm ' 命令,然后再 npm install,npm run dev ...

  7. npm install的时候报错 npm err code 1

    在学习vue的时候,npm install的时候报错  npm err code 1,当时很郁闷,是'vue init webpack my-project'命令新建的模版项目 ,怎么会报错,第一次遇 ...

  8. npm install安装报错 npm ERR! code Z_BUF_ERROR 问题解决

    1.问题 使用Visual Studio Code工具,导入iviwe-admin项目,需要执行npm install命令来安装该项目所需要的依赖文件.但是会有一下问题: npm ERR! code ...

  9. npm 报错: npm ERR! code ERESOLVE , npm ERR! code E404

    npm 报错: PS D:\Software\HBuilderX\Workspace\vant\vant-demo\vant\vue2> npm install npm ERR! code ER ...

最新文章

  1. 【NOIP2016提高A组模拟9.9】闭门造车
  2. Paper:GPT-3《 Language Models are Few-Shot Learners》的翻译与解读
  3. linux后台运行python脚本
  4. 【Linux】一步一步学Linux——tree命令(23)
  5. 一维有限元法matlab,一维有限元法解常微分方程
  6. ns3 入门案例2:third.cc
  7. libwacom9 : Depends: libwacom-common (= 2.2.0-1) but 1.12-1 is to be installed
  8. 信息泄露案件_圆通回应运单信息泄露案件:系主动报案,涉4万余条敏感信息...
  9. vue echarts div变化_数据可视化之echarts在Vue中的使用
  10. CI框架 -- 核心文件 之 Loader.php(加载器)
  11. Android音视频开发之ExoPlayer(二):播放列表常用的功能
  12. AtCoder Beginner Contest 267 ABC题解
  13. colorbox弹出层插件使用方法及注意事项
  14. 优秀程序员的博客有哪些?(2021 年 3 月版)
  15. 读后感:麦田守望者--走出软件作坊:三五个人十来条枪 如何成为开发正规军(四十三)
  16. 【Android Gradle 插件】 Splits 配置 ② ( Splits#abi{} 脚本块配置 | 根据 CPU 架构进行分包 | AbiSplitOptions 配置简介 )
  17. SAP 批量修改或添加BOM组件
  18. WWDC20 Session 清单(06-23)
  19. 编译linux驱动时提示很多源码头文件和定义缺失
  20. 牙科诊所信息管理系统 :四.CRUD

热门文章

  1. java之mybatis之缓存
  2. .Net 指针使用以及在栈上创建引用对象
  3. send/receive h264/aac file/data by rtp/rtsp over udp/tcp
  4. Brownie Slicing(二分枚举答案)
  5. (五)cobbler自定义系统安装
  6. springboot-day01-引入基础
  7. linux 定位 踩内存_互联网线上系统故障定位方法论
  8. selinux denied: u:r:untrusted_app:s0:c512,c768报错解决
  9. 监督学习与非监督学习
  10. emacs文件/目录比较工具