Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
296 views
in Technique[技术] by (71.8m points)

javascript - How to determine path to deep outdated/deprecated packages (NPM)?

How to determine, which packages (deep-dependencies, not top-level) are outdated in my local NPM installation?

I run the following command:

npm install

having this in my package.json:

"dependencies": {
    "bluebird": "^3.3.4",
    "body-parser": "~1.15.0",
    "connect-flash": "^0.1.1",
    "cookie-parser": "~1.4.1",
    "debug": "~2.2.0",
    "express": "~4.13.1",
    "express-session": "^1.13.0",
    "hbs": "~4.0.0",
    "lodash": "^4.6.1",
    "mkdirp-bluebird": "^1.0.0",
    "morgan": "~1.7.0",
    "opener": "^1.4.1",
    "sequelize": "^3.19.3",
    "serve-favicon": "~2.3.0",
    "sqlite3": "^3.1.1"
},

and get the following output:

$ npm install
npm WARN deprecated [email protected]: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.
npm WARN deprecated [email protected]: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0.
npm WARN deprecated [email protected]: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.

In my package.json all packages are fresh, but some of deep dependencies are outdated, and I don't know, how to determine WHICH of them.. And I want to do it quickly;)

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

you want ...

npm install -g npm-check-updates

then to show available updates

ncu

also ...

ncu -u

which actually change package.json to reflect the output of ncu.

And if that wasn't enough ...

ncu -m bower

check for new bower packages too!

Package npm-check-updates and more documentation is here

Edit for DEEP dependencies

npm-check-updates does not provide a depth option. With further research I found that npm now provides a CLI utitility to do what you want.

This essentially allows you to do ...

npm outdated --depth=5

which provides a similar output to npm-check-updates but also checks depth.

Note the default depth is 0 viz top level packages only. Also note that npm outdated only lists

  • current version
  • wanted version
  • latest version

it does not actually do the update.

To update packages use:

npm update --depth=5

npm warns against using the depth option in conjunction with npm-update


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...