使用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