npm install returns "TypeError: Cannot convert undefined or null to object"

I'm trying to install eslint globally using npm install -g eslint. This is a fresh version of [email protected]/[email protected] installed using nvm. The error I'm getting is:

Stacktrace:

0 info it worked if it ends with ok 1 verbose cli [ '/Users/fitvalet/.nvm/versions/node/v7.2.1/bin/node', 1 verbose cli '/Users/fitvalet/.nvm/versions/node/v7.2.1/bin/npm', 1 verbose cli 'install', 1 verbose cli '-g', 1 verbose cli 'eslint' ] 2 info using [email protected] 3 info using [email protected] 4 silly loadCurrentTree Starting 5 silly install loadCurrentTree 6 silly install readGlobalPackageData 7 silly fetchPackageMetaData eslint 8 silly fetchNamedPackageData eslint 9 silly mapToRegistry name eslint 10 silly mapToRegistry using default registry 11 silly mapToRegistry registry 12 silly mapToRegistry data Result { 12 silly mapToRegistry raw: 'eslint', 12 silly mapToRegistry scope: null, 12 silly mapToRegistry escapedName: 'eslint', 12 silly mapToRegistry name: 'eslint', 12 silly mapToRegistry rawSpec: '', 12 silly mapToRegistry spec: 'latest', 12 silly mapToRegistry type: 'tag' } 13 silly mapToRegistry uri 14 verbose request uri 15 verbose request no auth needed 16 info attempt registry request try #1 at 1:59:17 PM 17 verbose request id 066241c6e4150db4 18 http request GET 19 http 200 20 verbose headers { 'cache-control': 'must-revalidate', 20 verbose headers connection: 'close', 20 verbose headers 'content-type': 'application/json', 20 verbose headers date: 'Tue, 13 Dec 2016 18:59:17 GMT', 20 verbose headers server: 'CouchDB/2.0.0 (Erlang OTP/R16B03)', 20 verbose headers 'transfer-encoding': 'chunked', 20 verbose headers 'content-encoding': 'gzip', 20 verbose headers 'strict-transport-security': 'max-age=2592000000; includeSubDomains; preload;' } 21 silly get cb [ 200, 21 silly get { 'cache-control': 'must-revalidate', 21 silly get connection: 'close', 21 silly get 'content-type': 'application/json', 21 silly get date: 'Tue, 13 Dec 2016 18:59:17 GMT', 21 silly get server: 'CouchDB/2.0.0 (Erlang OTP/R16B03)', 21 silly get 'transfer-encoding': 'chunked', 21 silly get 'content-encoding': 'gzip', 21 silly get 'strict-transport-security': 'max-age=2592000000; includeSubDomains; preload;' } ] 22 verbose get saving undefined to /Users/fitvalet/.npm/ 23 verbose correctMkdir /Users/fitvalet/.npm correctMkdir not in flight; initializing 24 verbose makeDirectory /Users/fitvalet/.npm creation not in flight; initializing 25 silly makeDirectory /Users/fitvalet/.npm uid: 501 gid: 20 26 verbose stack TypeError: Cannot convert undefined or null to object 26 verbose stack at Function.keys (<anonymous>) 26 verbose stack at pickVersionFromRegistryDocument (/Users/fitvalet/.nvm/versions/node/v7.2.1/lib/node_modules/npm/lib/fetch-package-metadata.js:125:29) 26 verbose stack at /Users/fitvalet/.nvm/versions/node/v7.2.1/lib/node_modules/npm/node_modules/iferr/index.js:13:50 26 verbose stack at /Users/fitvalet/.nvm/versions/node/v7.2.1/lib/node_modules/npm/lib/utils/pulse-till-done.js:20:8 26 verbose stack at saved (/Users/fitvalet/.nvm/versions/node/v7.2.1/lib/node_modules/npm/lib/cache/caching-client.js:174:7) 26 verbose stack at /Users/fitvalet/.nvm/versions/node/v7.2.1/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:241:18 26 verbose stack at FSReqWrap.oncomplete (fs.js:111:15) 27 verbose cwd /Users/fitvalet 28 error Darwin 16.1.0 29 error argv "/Users/fitvalet/.nvm/versions/node/v7.2.1/bin/node" "/Users/fitvalet/.nvm/versions/node/v7.2.1/bin/npm" "install" "-g" "eslint" 30 error node v7.2.1 31 error npm v3.10.10 32 error Cannot convert undefined or null to object 33 error If you need help, you may report this error at: 33 error < 34 verbose exit [ 1, true ] 

6 Answers

The issue was that I had an old .npmrc that pointed to an the npm registry using skimdb.npmjs.org. I removed the file and my modules now install fine.

I could check the registry by typing npm config list registry which now points to what I suppose is the default:

1

Weird but I just downgraded npm from 8.5.2 to 6.14.16 and everything started to work.

1

This is mostly because of poor internet connection speed

OR older version of npm

For internet connection issue try below

You can try below to make it working

npm install --prefer-offline --no-audit 

secondly You can add project .npmrc file and add below lines

fetch-retry-maxtimeout = 6000000 fetch-retry-mintimeout = 1000000 

Also you can try npm config set timeout 6000000

For older npm related try below

npm install -g [email protected] 

If you don't know the versions of npm, use below command to list

npm view npm versions 

You might need to update your node version as well , to update node using nvm

nvm use 10 

Then try npm install

If this still give error try with yarn instead of npm.

the problem is with the npm registry run this: npm config get registry

and see if it is set to the desired URI default registry should set to

Webstorm can debug npm cli with following conf:

enter image description here

add npm cli opt --loglevel verbose to show error stack trace detail

in webstorm set breakpoint in stack trace line to find what cause this error

in my case, the error is caused by a dep in package.json

Had the same problem with npm install

I'm getting better results with npm install --legacy-peer-deps

Of course, if you don't want that option, this isn't good for you.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like