Cli: [ОШИБКА] TypeError: не удается прочесть "совпадение" свойства с неопределенным значением.

Созданный на 4 мар. 2020  ·  3Комментарии  ·  Источник: npm/cli

Что почему

Угловой 9.0.2
NodeJS: 13.9.0
npm: 6.13.7

Когда

  • Всякий раз, когда я устанавливаю пакет npm с существующим package-lock.json
  • После ввода git push heroku master

Где

  • https://github.com/theADAMJR/kittenoverflow -> источник ошибки

Как

  • https://pastebin.com/rB36VJGu -> журнал ошибок

Текущее поведение

  • Отказ развернуть на Heroku (большую часть времени)

Действия по воспроизведению

  • Установите любой пакет npm с package-lock.json (используя этот проект)

Ожидаемое поведение

  • TypeError: невозможно прочитать свойство 'match' из undefined

Кто

  • Мне

использованная литература

  • н / д

Самый полезный комментарий

Нашли виновника. Каким-то образом в файле блокировки была сохранена искаженная зависимость. Выглядит как:

"rc": {}

После удаления npm install снова

Я полагаю, что это был npm audit fix который был запущен непосредственно перед этим, но я постараюсь лучше отслеживать, какой именно шаг произвел это.

Все 3 Комментарий

Вот несколько журналов для этой ошибки, которые могут помочь:

19 verbose stack TypeError: Cannot read property 'match' of undefined
19 verbose stack     at tarballToVersion (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/lib/install/inflate-shrinkwrap.js:87:20)
19 verbose stack     at inflatableChild (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/lib/install/inflate-shrinkwrap.js:99:22)
19 verbose stack     at /home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/lib/install/inflate-shrinkwrap.js:55:12
19 verbose stack     at tryCatcher (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
19 verbose stack     at Object.gotValue (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/bluebird/js/release/reduce.js:155:18)
19 verbose stack     at Object.gotAccum (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/bluebird/js/release/reduce.js:144:25)
19 verbose stack     at Object.tryCatcher (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
19 verbose stack     at Promise._settlePromiseFromHandler (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:517:31)
19 verbose stack     at Promise._settlePromise (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:574:18)
19 verbose stack     at Promise._settlePromise0 (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:619:10)
19 verbose stack     at Promise._settlePromises (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:699:18)
19 verbose stack     at _drainQueueStep (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:138:12)
19 verbose stack     at _drainQueue (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:131:9)
19 verbose stack     at Async._drainQueues (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:147:5)
19 verbose stack     at Immediate.Async.drainQueues [as _onImmediate] (/home/jpage/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:17:14)
19 verbose stack     at processImmediate (internal/timers.js:456:21)
20 verbose cwd /home/jpage/Code/vnext-api
21 verbose Linux 4.4.0-18362-Microsoft
22 verbose argv "/home/jpage/.nvm/versions/node/v12.16.1/bin/node" "/home/jpage/.nvm/versions/node/v12.16.1/bin/npm" "audit" "fix"
23 verbose node v12.16.1
24 verbose npm  v6.14.2
25 error Cannot read property 'match' of undefined
26 verbose exit [ 1, true ]

Из этого стека похоже, что проблема в том, что sw.version здесь undefined :

https://github.com/npm/cli/blob/latest/lib/install/inflate-shrinkwrap.js#L99

Нашли виновника. Каким-то образом в файле блокировки была сохранена искаженная зависимость. Выглядит как:

"rc": {}

После удаления npm install снова

Я полагаю, что это был npm audit fix который был запущен непосредственно перед этим, но я постараюсь лучше отслеживать, какой именно шаг произвел это.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги