Cli: [BUG] TypeError: Tidak dapat membaca properti 'cocok' dari undefined

Dibuat pada 4 Mar 2020  ·  3Komentar  ·  Sumber: npm/cli

Apa sebabnya

Sudut 9.0.2
NodeJS: 13.9.0
npm: 6.13.7

Kapan

  • Setiap kali saya menginstal paket npm dengan package-lock.json yang ada
  • Setelah mengetik git push heroku master

Di mana

  • https://github.com/theADAMJR/kittenoverflow -> sumber bug

Bagaimana

  • https://Pastebin.com/rB36VJGu -> log kesalahan

Perilaku Saat Ini

  • Kegagalan untuk menyebarkan di Heroku (sebagian besar waktu)

Langkah-langkah untuk Reproduksi

  • Instal paket npm apa pun dengan package-lock.json (menggunakan proyek ini)

Perilaku yang Diharapkan

  • TypeError: Tidak dapat membaca properti 'cocok' dari undefined

Siapa

  • Aku

Referensi

  • tidak ada

Komentar yang paling membantu

Menemukan pelakunya. Entah bagaimana, lockfile memiliki dependensi yang disimpan dengan format yang salah. Tampak seperti:

"rc": {}

Setelah menghapus itu, npm install bekerja sekali lagi.

Saya percaya itu adalah npm audit fix yang dijalankan tepat sebelum itu, tetapi akan mencoba untuk melacak dengan lebih baik langkah mana yang menghasilkan ini.

Semua 3 komentar

Berikut beberapa log untuk kesalahan ini yang mungkin membantu:

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 ]

Dari tumpukan itu, sepertinya masalahnya adalah sw.version adalah undefined sini:

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

Menemukan pelakunya. Entah bagaimana, lockfile memiliki dependensi yang disimpan dengan format yang salah. Tampak seperti:

"rc": {}

Setelah menghapus itu, npm install bekerja sekali lagi.

Saya percaya itu adalah npm audit fix yang dijalankan tepat sebelum itu, tetapi akan mencoba untuk melacak dengan lebih baik langkah mana yang menghasilkan ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat