解决VueCli因为EnumerateProviders创建新项目失败问题

使用vue-cli创建项目时,总会出现
EnumerateProviders catalog=0
EnumerateProviders totalPro=20
项目创建失败,依赖下载的地址都会拼接上EnumerateProviders,报如下错误:

Error: https://registry.npmjs.org/%0AEnumerateProviders%20catalog=0%0D%0D%0AEnumerateProviders%20totalPro=20/@vue%2fcli-plugin-babel: Not found
      at Request.params.callback [as _callback] (D:\node\node_global\node_modules\yarn\lib\cli.js:66988:18)
      at Request.self.callback (D:\node\node_global\node_modules\yarn\lib\cli.js:140662:22)
      at Request.emit (events.js:314:20)
      at Request.<anonymous> (D:\node\node_global\node_modules\yarn\lib\cli.js:141634:10)
      at Request.emit (events.js:314:20)
      at IncomingMessage.<anonymous> (D:\node\node_global\node_modules\yarn\lib\cli.js:141556:12)
      at Object.onceWrapper (events.js:420:28)
      at IncomingMessage.emit (events.js:326:22)
      at endReadableNT (_stream_readable.js:1226:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

vuecli使用exca这个包来实现命令的运行,在这个包中又会使用strip-eof来处理执行命令行后stdout的数据。
修改strip-eof中的index.js文件,修改为以下代码,可以修复这个问题:

'use strict';
module.exports = function (x) {
	var catalog_pattern = /EnumerateProviders (catalog|totalPro)=\d+/g;
	x = x.replace(catalog_pattern, "").trim()

	var lf = typeof x === 'string' ? '\n' : '\n'.charCodeAt();
	var cr = typeof x === 'string' ? '\r' : '\r'.charCodeAt();
	
	if (x[x.length - 1] === lf) {
		x = x.slice(0, x.length - 1);
	}

	if (x[x.length - 1] === cr) {
		x = x.slice(0, x.length - 1);
	}

	return x;
};

转自:https://juejin.cn/post/6844904134416531469

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值