ããã¯ããªã«ãããããŠæžãããã®ïŒ
以åãnpm installïŒnpm iïŒã§äœ¿ãããŒãžã§ã³ã«ã€ããŠèª¿ã¹ãŠã¿ãŸããã
npm installなどで使うバージョンがよくわからなかったので、調べてみました - CLOVER🍀
ãªã®ã§ãããnpmãããžã§ã¯ããäŸåããŠããããã±ãŒãžã衚瀺ããããããæ°ããããŒãžã§ã³ããªãªãŒã¹ãããŠãããã©ãããªã©ã¯ã©ããã£ãŠ
確èªãããããã®ããªãšæã£ãŠèª¿ã¹ãŠã¿ããšã
npmã³ãã³ãã§ã§ãããã ã£ãã®ã§ããŸãšããŠããããšã«ããŸãã
çµè«ãèšããšãnpm lsãnpm outdatedãnpm updateãªã©ã䜿ããšè¯ãããã§ãã
ç°å¢
ä»åã®ç°å¢ã¯ããã¡ãã
$ node --version v16.18.1 $ npm --version 8.19.2
æºå
æºåãšããŠãnpmãããžã§ã¯ããäœæããŠçŸæç¹ã§ã¯å°ãå€ãããã±ãŒãžãäŸåé¢ä¿ã«è¿œå ããŠã¿ãŸãã
$ npm init -y $ npm i express@4.17.0 $ npm i winston@3.8.0 $ npm i -D @types/node@16.18.0 $ npm i -D typescript@4.8.2
package.jsonã®äŸåé¢ä¿ã¯ããã®ããã«ãªããŸããã
"dependencies": { "express": "^4.17.0", "winston": "^3.8.0" }, "devDependencies": { "@types/node": "^16.18.0", "typescript": "^4.8.2" }
npmãããžã§ã¯ãã®äŸåé¢ä¿ã衚瀺ãã
npmãããžã§ã¯ããäŸåããŠããããã±ãŒãžã衚瀺ããã«ã¯ãnpm lsïŒnpm listïŒã䜿ããšè¯ãããã§ãã
This command will print to stdout all the versions of packages that are installed, as well as their dependencies when --all is specified, in a tree structure.
ã€ã³ã¹ããŒã«ãããŠããäŸåé¢ä¿ã衚瀺ããŠãããã³ãã³ãã®ããã§ãã
å®è¡ããŠã¿ãŸãã
$ npm ls npm-dependencies@1.0.0 /path/to/my-npm-project âââ @types/node@16.18.0 âââ express@4.17.0 âââ typescript@4.8.2 âââ winston@3.8.0
çŸåšã®ãããžã§ã¯ãã®äŸåé¢ä¿ã衚瀺ãããŸããã
ããã±ãŒãžãçŽæ¥æå®ããããšãã§ããŸãã
$ npm ls express npm-dependencies@1.0.0 /path/to/my-npm-project âââ express@4.17.0
ããã©ã«ãã ãš1éå±€ãã衚瀺ããªããããªã®ã§ãäŸåããŠããããã±ãŒãžãæšç§»çã«ä»ã®ããã±ãŒãžã«äŸåããŠããå Žåã衚瀺ãããããª
ã±ãŒã¹ã§ã¯ã--depthãªãã·ã§ã³ã䜿ããŸãã
2éå±€ãŸã§è¡šç€ºããŠã¿ãŸãã
$ npm ls --depth 2 npm-dependencies@1.0.0 /path/to/my-npm-project âââ @types/node@16.18.0 ââ⬠express@4.17.0 â ââ⬠accepts@1.3.8 â â âââ mime-types@2.1.35 â â âââ negotiator@0.6.3 â âââ array-flatten@1.1.1 â ââ⬠body-parser@1.19.0 â â âââ bytes@3.1.0 â â âââ content-type@1.0.4 deduped â â âââ debug@2.6.9 deduped â â âââ depd@1.1.2 deduped â â âââ http-errors@1.7.2 â â âââ iconv-lite@0.4.24 â â âââ on-finished@2.3.0 deduped â â âââ qs@6.7.0 deduped â â âââ raw-body@2.4.0 â â âââ type-is@1.6.18 deduped â ââ⬠content-disposition@0.5.3 â â âââ safe-buffer@5.1.2 deduped ãçç¥ã
ããã©ã«ãã§ã¯ã--depthã«1ãæå®ãããç¶æ
ã§å®è¡ããŠããããã§ãã
å
šéå±€ã衚瀺ããå Žåã¯ã--allãªãã·ã§ã³ã䜿ããŸãã
$ npm ls --all npm-dependencies@1.0.0 /path/to/my-npm-project âââ @types/node@16.18.0 ââ⬠express@4.17.0 â ââ⬠accepts@1.3.8 â â ââ⬠mime-types@2.1.35 â â â âââ mime-db@1.52.0 â â âââ negotiator@0.6.3 â âââ array-flatten@1.1.1 â ââ⬠body-parser@1.19.0 â â âââ bytes@3.1.0 â â âââ content-type@1.0.4 deduped â â âââ debug@2.6.9 deduped â â âââ depd@1.1.2 deduped â â ââ⬠http-errors@1.7.2 â â â âââ depd@1.1.2 deduped â â â âââ inherits@2.0.3 deduped â â â âââ setprototypeof@1.1.1 deduped â â â âââ statuses@1.5.0 deduped â â â âââ toidentifier@1.0.0 â â ââ⬠iconv-lite@0.4.24 â â â âââ safer-buffer@2.1.2 â â âââ on-finished@2.3.0 deduped â â âââ qs@6.7.0 deduped ãçç¥ã
éè€ããŠãããã®ã¯ãdedupedãä»ããŠããã¿ããã§ããã
æ°ããããŒãžã§ã³ã®ããã±ãŒãžããªãªãŒã¹ãããŠãããã©ãã確èªãã
çŸåšã®ãããžã§ã¯ããäŸåããŠããnpmããã±ãŒãžã®äžã«ãããæ°ããããŒãžã§ã³ã®ãã®ããªãªãŒã¹ãããŠãããã©ããã確èªããã«ã¯
npm outdatedã䜿çšããŸãã
å®è¡ããŠã¿ãŸãã
$ npm outdated Package Current Wanted Latest Location Depended by @types/node 16.18.0 16.18.3 18.11.9 node_modules/@types/node npm-dependencies express 4.17.0 4.18.2 4.18.2 node_modules/express npm-dependencies typescript 4.8.2 4.9.3 4.9.3 node_modules/typescript npm-dependencies winston 3.8.0 3.8.2 3.8.2 node_modules/winston npm-dependencies
ãCurrentãã¯çŸåšã®ããŒãžã§ã³ã§ãããWantedãã¯ãpackage.jsonã§æå®ãããsemverã®ç¯å²ãæºãããã®ã§æãæ°ããããŒãžã§ã³ã
衚瀺ããŸãããLatestãã¯ããã±ãŒãžã®ææ°ã®ããŒãžã§ã³ã§ããã
ãCurrentããšãLatestããäžèŽããŠããå Žåã¯ãçµæã«è¡šç€ºãããªãããã§ãã
ä»åãæå³çã«å°ãå€ãããã±ãŒãžãã€ã³ã¹ããŒã«ããŠããŸãããã»ãšãã©ã®ãã®ã¯ãWantedããšãLatestããäžèŽããŠããŸãã
@types/nodeã®ã¿ãã¡ãžã£ãŒããŒãžã§ã³ãç°ãªãã®ã§v16ã®ç¯å²ããWantedããšãªãããLatestããšå·®ãåºãŠããŸãã
"dependencies": { "express": "^4.17.0", "winston": "^3.8.0" }, "devDependencies": { "@types/node": "^16.18.0", "typescript": "^4.8.2" }
äŸåããŠããããã±ãŒãžãæ°ããããŒãžã§ã³ã«æŽæ°ãã
npm outdatedã§æ°ããããŒãžã§ã³ã®ããã±ãŒãžããªãªãŒã¹ãããŠããããšã確èªã§ããããã¢ããããŒããæ€èšããããã§ããã
ããã¯ãnpm updateã§è¡ããããã§ãã
npm updateã§ã¯ãããã±ãŒãžã®ææ°çãŸãã¯semverãæºããç¯å²ã§ããã±ãŒãžãã¢ããããŒãããŸãã
This command will update all the packages listed to the latest version (specified by the tag config), respecting the semver constraints of both your package and its dependencies (if they also require the same package).
äžè¶³ããŠããããã±ãŒãžãããå Žåã¯ãåæã«è¿œå ããŠãããããã§ãã
詊ããŠã¿ãŸããããnpm outdatedã®çµæã¯ä»¥äžã§ããã
$ npm outdated Package Current Wanted Latest Location Depended by @types/node 16.18.0 16.18.3 18.11.9 node_modules/@types/node npm-dependencies express 4.17.0 4.18.2 4.18.2 node_modules/express npm-dependencies typescript 4.8.2 4.9.3 4.9.3 node_modules/typescript npm-dependencies winston 3.8.0 3.8.2 3.8.2 node_modules/winston npm-dependencies
æåã«ã©ããããã®å€æŽéãããã®ãã確èªããŠã¿ãŸããããã«ã¯--dry-runãªãã·ã§ã³ã䜿ããŸãã
$ npm update --dry-run added 7 packages, removed 3 packages, and changed 21 packages in 757ms 8 packages are looking for funding run `npm fund` for details
ãããŸãããããããŸãããâŠã
ã§ã¯ãæŽæ°ããŠã¿ãŸãã
$ npm update added 7 packages, removed 1 package, changed 23 packages, and audited 87 packages in 5s 8 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
npm lsã®çµæã
$ npm ls npm-dependencies@1.0.0 /path/to/my-npm-project âââ @types/node@16.18.3 âââ express@4.18.2 âââ typescript@4.9.3 âââ winston@3.8.2
äŸåããã±ãŒãžãã¢ããããŒããããããã§ãã
npm outdatedã確èªããŠã¿ãŸãããã衚瀺ãããã®ã@types/nodeã®ã¿ã«ãªããŸããã
$ npm outdated Package Current Wanted Latest Location Depended by @types/node 16.18.3 16.18.3 18.11.9 node_modules/@types/node npm-dependencies
ããã¯ã以äžã®èšè¿°ãªã®ã§v16ã®ç¯å²ã§ããæŽæ°ãããªãããã§ããã
"@types/node": "^16.18.0",
ã¡ãžã£ãŒããŒãžã§ã³ãå€ãããããªå Žåã¯ãªãªãŒã¹ããŒãçãããªãã«ç¢ºèªããããšããããšæãã®ã§ãsemverã®ç¯å²ãå®ãã®ã¯åŠ¥åœãª
æããããŸããã
semverã®ç¯å²ãããããã«æŽæ°ãããå Žåã¯ãnpm installã§åã
ã®ããã±ãŒãžãæå®ããŠã€ã³ã¹ããŒã«ããããšã«ãªããŸãã
ããã§ãææ°çã«äžæ¬ã§ã¢ããããŒããããããšããå Žåã¯ãã¡ãã䜿ãã®ã§ã¯ãªãããšæããŸãã
ãšããã§ãnpm updateãå®è¡ããŠãpackage.jsonãå€ããããã§ã¯ãããŸããã
"dependencies": { "express": "^4.17.0", "winston": "^3.8.0" }, "devDependencies": { "@types/node": "^16.18.0", "typescript": "^4.8.2" }
package.jsonãå«ããŠæŽæ°ããå Žåã¯ã--saveãªãã·ã§ã³ãä»äžããŸãã
$ npm update --save
ãããããšãpackage.jsonã®èšè¿°ãæŽæ°ãããããã«ãªããŸãã
"dependencies": { "express": "^4.18.2", "winston": "^3.8.2" }, "devDependencies": { "@types/node": "^16.18.3", "typescript": "^4.9.3" }
ãããªãšããã§ããããã
ãŸãšã
npmãããžã§ã¯ãã®äŸåé¢ä¿ã確èªããããæ°ããããŒãžã§ã³ã®ç¢ºèªãæŽæ°ãè¡ãnpmã³ãã³ãã確èªããŠã¿ãŸããã
ä»ãŸã§ãããŸãç¥ããŸããã§ãããããã£ããããããã§ãããã§ãããèŠããŠãããŸãããã