npm
npm 10+æ¥åžžçã«äœ¿ã npm CLI ã³ãã³ãã®ã¯ã€ã㯠ãªãã¡ã¬ã³ã¹:init / install / add / remove / update / scripts / run / publish / auditãããã¯ãã¡ã€ã«ãã¬ãžã¹ããªããã£ãã·ã¥ç®¡ç â ãã䜿ããªãã·ã§ã³ãšå®çšäŸããŸãšããŸããã
34 ã³ãã³ã
ãããžã§ã¯ãã®åæå
npm init`package.json` ã®äœæã察話çã«é²ããname / version / description / entry point ãªã©ãå°ããŸãã
-y ãã¹ãŠæ¢å®ãæ¿è«Ÿ; --init.author 'Name <e@x>' æ¢å®ãäžæžã
npm init -ynpm init -y劥åœãªæ¢å®å€ã§ `package.json` ãå³åº§ã«çæããŸã(ãã£ã¬ã¯ããªãã `name`ã`version` 㯠1.0.0)â çŸä»£çãªåºçºç¹ã§ãã
npm init -y && cat package.jsonã€ã³ã¹ããŒã«
npm install`package.json` ã«ãªã¹ãããããã¹ãŠã®äŸåé¢ä¿ãã€ã³ã¹ããŒã«ãã`node_modules` ãš `package-lock.json` ãæŽæ°ããŸãã`NODE_ENV=production` ã®å Žå㯠dev äŸåé¢ä¿ãã¹ãããããŸãã
--save-exact / -E ããŒãžã§ã³ãå®å šåºå®; --legacy-peer-deps; --force; --no-audit; --prefer-offline
npm installnpm ci`package-lock.json` ã ãããã¯ãªãŒã³ ã€ã³ã¹ããŒã«ããŸãã`npm install` ããé«éã§ãæåã« `node_modules` ãåé€ããããã¯ãã¡ã€ã«ã®å€æŽãæåŠããŸã â CI ã§æé©ãªéžæã§ãã
--omit=dev devDependencies ãã¹ããã; --prefer-offline
npm ci --omit=deväŸåé¢ä¿ã®è¿œå
npm install <pkg>ã©ã³ã¿ã€ã äŸåé¢ä¿ã远å ããŸã(æ¢å®ã¯ `dependencies`)ã解決ãããããŒãžã§ã³ã `package-lock.json` ã«èšé²ãã`package.json` ã«æžã蟌ã¿ãŸãã
<pkg>@<version-range>; --save-dev / -D; --save-exact / -E; --save-optional / -O; --save-prod / -P
npm install lodash && npm install eslint@^9 --save-devnpm install <pkg>@<version>ç¹å®ã®ããŒãžã§ã³ç¯å²(semver)ãã€ã³ã¹ããŒã«ããŸã:å®å šäžèŽ `1.2.3`ããã«ã `~1.2.3`ããã£ã¬ãã `^1.2.3`ã`latest` / `next` / `beta` ãªã©ã®ã¿ã°ã
npm install [email protected] && npm install next@latestnpm install -D <pkg>`devDependencies` ã«è¿œå ããŸã â ãã«ã / ãã¹ãæã®ã¿å¿ èŠãªããŒã«(TypeScriptãJestãESLintãPrettier)ã
npm install -D typescript @types/node vitestnpm install -g <pkg>ããã±ãŒãžãã°ããŒãã«ã«ã€ã³ã¹ããŒã«ãããã€ããªããã¹ãŠã®ãããžã§ã¯ãã® `PATH` äžã§å©çšã§ããããã«ããŸã(TypeScriptãtsxãcreate-react-appãhttp-server)ã
npm install -g typescript tsx pnpmåé€
npm uninstall <pkg>`node_modules` ãš `package.json` ããããã±ãŒãžãåé€ããŸãã
-D devDependencies ããåé€; -g ã°ããŒãã«ãåé€; --save false ãããã§ã¹ãç·šéãã¹ããã(çš)
npm uninstall lodash && npm uninstall -D @types/nodeæŽæ°
npm update`package.json` ã® semver 仿§ã§èš±å¯ãããç¯å²å ã§ãã¹ãŠã®äŸåé¢ä¿ãã¢ããã°ã¬ãŒãããããã«å¿ã㊠`package-lock.json` ãæŽæ°ããŸãã
--save false ãããã§ã¹ãæžã蟌ã¿ãã¹ããã; --workspace ã¯ãŒã¯ã¹ããŒã¹å ã§æŽæ°
npm updatenpm update <pkg>1 ã€ã®ããã±ãŒãžãçŸåšã® semver ç¯å²ãæºããææ°ããŒãžã§ã³ã«æŽæ°ããŸãã
npm update eslintnpm install <pkg>@lateståäžã®ããã±ãŒãžãææ°ãªãªãŒã¹ã«ã¢ããã°ã¬ãŒãããŸã(semver ç¯å²ããã€ãã¹ããç¯å²ã `^<new-version>` ã«æžãæããŸã)ã
npm install typescript@latest && npm install -D vitest@latestã¹ã¯ãªããå®è¡
npm run <script>`package.json` ã® `scripts` ã»ã¯ã·ã§ã³ã§å®çŸ©ãããã¹ã¯ãªãããå®è¡ããŸãã`npm test`ã`npm start`ã`npm stop`ã`npm restart` 㯠`npm run X` ã®ç瞮圢ã§ãã
-- silent npm ãã°ãæå¶; --if-present ç¡ããŠããšã©ãŒã«ããªã; -- <args> æ®ãã®åŒæ°ãã¹ã¯ãªããã«è»¢é
npm run build -- --mode productionnpm run <script> -- <args>åºç€ã®ã¹ã¯ãªããã«è¿œå ã® CLI åŒæ°ãæž¡ããŸãã`--` 以éã¯ãã¹ãŠãã®ãŸãŸè»¢éãããŸãã
npm run lint -- --fix src/npm exec -- <command>ããŒã«ã«ãŸã㯠`npx` ãã£ãã·ã¥ãããããã±ãŒãžããã³ãã³ããå®è¡ããŸããéæšå¥šã® `npx <command>` çŽæ¥åŒã³åºãã眮ãæããŸãã
npm exec -- create-react-app my-app確èª
npm lsçŸåšã®ãããžã§ã¯ãã®äŸåé¢ä¿ããªãŒ(ãããã¬ãã« + æšç§»ç)ãåºåããŸããããã±ãŒãžã®éè€ãèŠã€ããã®ã«äŸ¿å©ã§ãã
--all; --depth=N æ·±ããå¶é; --json JSON åºå; -g ã°ããŒãã«ãäžèЧ
npm ls --depth=0 && npm ls reactnpm outdatedã€ã³ã¹ããŒã«æžã¿ã®ããŒãžã§ã³ããããã§ã¹ãã®ç¯å²ãèš±å¯ããææ°ããŒãžã§ã³ããå€ããã¹ãŠã®äŸåé¢ä¿ã®ããŒãã«ã衚瀺ããŸãã
--long 詳现; --json JSON åºå
npm outdatednpm view <pkg>ããã±ãŒãžã®ã¬ãžã¹ã㪠ã¡ã¿ããŒã¿(ããŒãžã§ã³ãdist-tagãäŸåé¢ä¿ãã¡ã³ããããªããžã㪠URLãreadme æç²)ã衚瀺ããŸãã
versions; time; dist-tags; repository.url
npm view lodash versions && npm view react dist-tagsããã¯ãã¡ã€ã«
npm shrinkwrapã¹ã¿ã³ãã¢ãã³ã® `npm-shrinkwrap.json`(`package-lock.json` ãšåã圢åŒ)ãçæããŸããããã¯ãã¡ã€ã«ãªãã§é åžãããã¢ããªã§ãåçŸå¯èœãªã€ã³ã¹ããŒã«ãå¿ èŠãªå Žåã«äœ¿çšããŸãã
npm shrinkwrapã¬ãžã¹ããª
npm config get registryçŸåšã¢ã¯ãã£ããªã¬ãžã¹ã㪠URL ãåºåããŸããæ¢å®ã¯ `https://registry.npmjs.org/` ã§ãã
npm config get registrynpm config set registry <url>npm ããã©ã€ããŒã / ãã£ãã·ã¥ ã¬ãžã¹ããª(GitHub PackagesãVerdaccioãäžåœãã©ãŒ)ã«åããŸãã`~/.npmrc` ãŸãã¯ãããžã§ã¯ãã® `.npmrc` ã«æžã蟌ã¿ãŸãã
npm config set registry https://registry.npmmirror.com/npm loginæ§æãããã¬ãžã¹ããªã«å¯ŸããŠèªèšŒããããŒã¯ã³ã `~/.npmrc` ã«ä¿åããŸãã`npm publish` ã®åã«å¿ èŠã§ãã
--registry=<url> å¥ã®ã¬ãžã¹ããªã«ãã°ã€ã³; --scope=<scope> ããŒã¯ã³ãå¶é
npm login --registry=https://registry.npmjs.org/å ¬é
npm publishçŸåšã®ããã±ãŒãžãæ§æãããã¬ãžã¹ããªã«ã¢ããããŒãããŸãã`package.json` å ã« `name`(é垞㯠`version`ã`repository` ã)ãå¿ èŠã§ãå ¬éæš©éãæã€ãã°ã€ã³ ãŠãŒã¶ãŒãå¿ èŠã§ãã
--access public|restricted (ã¹ã³ãŒãä»ãããã±ãŒãž); --dry-run; --tag <tag> dist-tag ã§é åž
npm publish --access public --tag betanpm unpublish <pkg>@<version>ç¹å®ã®ããŒãžã§ã³ãã¬ãžã¹ããªããåé€ããŸãã**å ¬éåŸ 72 æé以å ã¯åŒ·ãéæšå¥š** â npm ã¯ãµããŒãããŸããæšå¥šããŸããã
npm unpublish [email protected]npm deprecate <pkg>@<version> '<msg>'npm ãã€ã³ã¹ããŒã«æã«è¡šç€ºããã¡ãã»ãŒãžãšå ±ã«ãããŒãžã§ã³ãéæšå¥šãšããŠããŒã¯ããŸããå±¥æŽãåé€ããã«ãŠãŒã¶ãŒãä¿®æ£ã«èªå°ããæ£ããæ¹æ³ã§ãã
npm deprecate [email protected] 'use 1.2.4+ â security fix'ç£æ»
npm auditã€ã³ã¹ããŒã«æžã¿ã®äŸåé¢ä¿ããªãŒã«å¯ŸããŠã»ãã¥ãªãã£ç£æ»ãå®è¡ããnpm ã¬ãžã¹ããªããã¢ããã€ã¶ãªãååŸããŸãã
--json; --omit=dev dev äŸåé¢ä¿ãã¹ããã; --audit-level=low|moderate|high|critical
npm audit --omit=devnpm audit fixã¢ããã€ã¶ãªã解決ããæãè¿ãéç Žå£ããŒãžã§ã³ã«ããã±ãŒãžãèªåã¢ããã°ã¬ãŒãããŸããsemver-major ã®ãžã£ã³ããåãå ¥ããå Žåã®ã¿ `npm audit fix --force` ã䜿çšããŠãã ããã
--force; --dry-run
npm audit fixãã£ãã·ã¥
npm cache clean --forceã°ããŒãã« npm ãã£ãã·ã¥(POSIX ã§ã¯ `~/.npm`)ãæ¶å»ããŸããã¬ãžã¹ããªãåãæ¿ããåŸãå¥åŠãªã€ã³ã¹ããŒã« ãšã©ãŒã远跡ãããšãã«äœ¿çšããŸãã
npm cache clean --forcenpm cache verifyãã£ãã·ã¥ããã tarball ã®æŽåæ§ãåé€ããã«æ€èšŒããŸãããã€ã§ãå®å šã«å®è¡ã§ããŸãã
npm cache verifyã¯ãŒã¯ã¹ããŒã¹
npm install -w <workspace>monorepo(`package.json` ã® `workspaces` ã§å®çŸ©)å ã®æå®ãããåäžã®ã¯ãŒã¯ã¹ããŒã¹ã«ããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
npm install lodash -w @myorg/webnpm run <script> -wsmonorepo ã®ãã¹ãŠã®ã¯ãŒã¯ã¹ããŒã¹ã§ã¹ã¯ãªãããå®è¡ããŸãã`-w <name>` ã¯åäžã®ã¯ãŒã¯ã¹ããŒã¹ã®ã¿ãå®è¡ããŸãã
--if-present ç¡ããŠããšã©ãŒã«ããªã
npm run build -ws && npm test -w @myorg/apiãã®ä»
npm doctorç°å¢èšºæ(Node ããŒãžã§ã³ãã¬ãžã¹ããªã®å°éå¯èœæ§ããã£ãã·ã¥ã®å¥å šæ§ãGit ã®ååš)ãå®è¡ããŸã â ãã©ãã«ã·ã¥ãŒãã£ã³ã°æã«äŸ¿å©ã§ãã
npm doctornpm fundçŸåšã®ãããžã§ã¯ãã®çŽæ¥äŸåé¢ä¿ã®ãã¡ã³ãã£ã³ã° ãªã³ã¯ã衚瀺ããŸã(ã¡ã³ããã OSS ãã¹ãã³ãµãŒããããã«äœ¿çš)ã
npm fundnpm pkg set <key>=<value>ãšãã£ã¿ãéããã« CLI ãã `package.json` å ã®ãã£ãŒã«ãã倿ŽããŸããã¹ã¯ãªãã / ããã¯ã§äŸ¿å©ã§ãã
npm pkg set scripts.lint='eslint .' && npm pkg get versioné¢é£ã³ãã³ã鿥
volta
æ¥åžžçã«äœ¿ã Volta ã³ãã³ãã®ã¯ã€ãã¯ãªãã¡ã¬ã³ã¹:Node / npm / Yarn / pnpm ããŒã«ãã§ãŒã³ã®ã€ã³ã¹ããŒã«ããããžã§ã¯ãããšã®ããŒãžã§ã³åºå®ãã°ããŒãã« ããã±ãŒãžã®ç®¡çãVolta èªèº«ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã° â ãã䜿ããªãã·ã§ã³ãšå®çšäŸããŸãšããŸããã
25 ã³ãã³ã
Volta 1.x
yarn
æ¥åžžçã«äœ¿ã Yarn CLI ã³ãã³ã(Yarn Classic 1.x ãš Yarn Berry 2/3/4 äž¡æ¹)ã®ã¯ã€ã㯠ãªãã¡ã¬ã³ã¹:install / add / remove / run / workspacesãããã¯ãã¡ã€ã«ãPlug'n'PlayãBerry æ§æ â ãã䜿ããªãã·ã§ã³ãšå®çšäŸããŸãšããŸããã
33 ã³ãã³ã
Yarn 1.x (classic) / Yarn 4 (berry)
pnpm
pnpm ãçŽ æ©ãåç §:install / add / remove / updateãã¹ã¯ãªãããã¯ãŒã¯ã¹ããŒã¹ãã¹ã㢠/ ãã£ãã·ã¥ãèšå® â GitHub ãµã€ãã® pnpm ãªããžããªéçšãäžå¿ã«ããã䜿ããªãã·ã§ã³ãšå®çšäŸããŸãšããŸããã
31 ã³ãã³ã
pnpm 9+
npx
npx ã³ãã³ãã®ã¯ã€ã㯠ãªãã¡ã¬ã³ã¹:ã¯ã³ã·ã§ãã ããã±ãŒãž ãã€ããªã®å®è¡ããããžã§ã¯ãã®ã¹ãã£ãã©ãŒã«ããnpx ãã£ãã·ã¥ã®ç®¡çãããŒãžã§ã³ã®åºå®ã察話å CLI ã®èœãšã穎ã®åé¿ â ãã䜿ããªãã·ã§ã³ãšå®çšäŸããŸãšããŸããã
25 ã³ãã³ã
npx 10+ (shipped with npm)
vite
Vite CLI ã³ãã³ãã®ã¯ã€ã㯠ãªãã¡ã¬ã³ã¹:dev ãµãŒããŒããã«ãããã¬ãã¥ãŒãäŸåé¢ä¿ã®ããªãã³ãã«ããã©ã°ã€ã³ç®¡çãç°å¢å€æ°ããããžã§ã¯ãç¢ºèª â ãã䜿ããªãã·ã§ã³ãšå®çšäŸããŸãšããŸããã
30 ã³ãã³ã
Vite 5+
åæšãšå©çšã«ã€ããŠã®åç¥
æ¬ã³ãã³ãã©ã€ã³ããŒã«ã»ããŒãã·ãŒãéã¯ãªãŒãã³ã³ãã¥ããã£ã®åèè³æã§ããæ¬æžã§èšåããããŒã«ã®ååãããŽãåæšïŒGitâ¢ãDockerâ¢ãKubernetes®ãkubectlãPostgreSQL®ãMySQL®ãRedisâ¢ãMongoDB®ãLinuxâ¢ãPowerShellâ¢ãVim⢠ãªã©ïŒã¯ãã¹ãŠããããã®æš©å©è ã®è²¡ç£ã§ãããæ¬æžã§ã¯èå¥ããã³åç §ã®ç®çã®ã¿ã«äœ¿çšããŠããŸãã
æ¬ããŒãã·ãŒãã®å šå 容ã¯ç¬ç«ããŠäœæãããç°¡ç¥åãããèªå·±å®çµåã®åèè³æã§ããããããªãå ¬åŒããã¥ã¡ã³ãã«ãæå±ãããæ¿èªãããŠãããããŸãåŒçšããããã®ã§ããããŸãããã³ãã³ãäžèЧããªãã·ã§ã³ãã©ã°ã®èª¬æãã³ãŒãäŸã¯ãã¹ãŠèè ã«ããç¬èªã®ç°¡ç¥åã§ããæš©åšããæ å ±ã«ã€ããŠã¯ãåããŒã«ã®å ¬åŒããã¥ã¡ã³ããåç §ããŠãã ããã
ã³ãã³ãã®æ§æããã³ãªãã·ã§ã³ãã©ã°ã¯ããŒã«ã®ããŒãžã§ã³ã«ãã£ãŠç°ãªãå ŽåããããŸãã衚瀺ãããããŒãžã§ã³ã¿ã°ã¯å®å®ãªãªãŒã¹ã瀺ããŠããŸããä»ã®ããŒãžã§ã³ã§ã¯åäœãç°ãªãå ŽåããããŸããæ¬æžã¯åæšæš©è ã«ããæšå¥šãéžå¥œãæå³ãããã®ã§ã¯ãããŸããã
åæšæš©è ãŸãã¯èäœæš©è ã®æ¹ã§ãåœãµã€ãã®äžéšå 容ã«ã€ããŠæš©å©äŸµå®³ã®æžå¿µãããå Žåã¯[email protected]ãŸã§ãé£çµ¡ãã ãããæå¹ãªæš©å©èšŒæãåé æ¬¡ç¬¬ãåççãªæéå ã«é¢é£å 容ãä¿®æ£ãŸãã¯åé€ããããŸãã
åœãµã€ãã®æ å ±ãå©çšããããšã§çãããããªãçŽæ¥çã»éæ¥çæå®³ã«ã€ããŠããåœãµã€ãã¯æ³ç責任ãè² ããŸããã
npm ã«ã€ããŠ
npm 㯠Node.js ã®ããã©ã«ã ããã±ãŒãž ãããŒãžã£ãŒã§ãIsaac Z. Schlueter ã«ãã£ãŠ 2010 幎ã«ã¹ã¿ã³ãã¢ãã³ ããŒã«ãšããŠæžããã2011 幎㮠Node.js 0.6.3 以é Node ã«ãã³ãã«ãããŠããŸããåå㯠`Node Package Manager` ã®ç¥ã§ããããããŒã 㯠2014 幎ã«ç¥èªãšããŠæ±ãããšãæ£åŒã«æ¢ããŸãããçŸåšã®å®å®ç㯠npm 10 ã§ãNode 20+ ã«å梱ãããŠããŸããnpm ã¯ã¬ãžã¹ããª(æ¢å®ã® `registry.npmjs.org`ã2020 幎ãã GitHub ããã¹ãããå ¬é CouchDB)ãšããåããã`package.json` + `package-lock.json` ãèªã¿æžãããããŒã«ã« ã€ã³ã¹ããŒã«(ãããžã§ã¯ãã® `node_modules`)ãšã°ããŒãã« ã€ã³ã¹ããŒã«(PATH ã«è¿œå )ã®äž¡æ¹ããµããŒãããŸããnpm 7+ ã§ monorepo çšã¯ãŒã¯ã¹ããŒã¹ãå°å ¥ãããŸãã;npm 9+ ã«ã¯ `npx` ãçµã¿èŸŒãŸãã峿 Œãª peer-dependency ãšã³ãžã³ãæèŒãããŠããŸããã»ãšãã©ã® npm ã³ãã³ã㯠`-D`(dev)ã`-E`(exact)ã`-g`(global)ã`--save-prod`ãéæšæºã€ã³ã¹ããŒã« ãã£ã¬ã¯ããªã® `--prefix` ãã©ã°ãåãä»ããŸããnpm ã¯ããªãã®ã³ãŒããã¢ããããŒãããŸãã â ããŒã«ã« ãã¡ã€ã«ãšã¬ãžã¹ããªã«æžã蟌ãã ãã§ããå¿åã®ããŠã³ããŒãææšã¯ npm ã¬ãžã¹ããªã§éèšãããŸããããããžã§ã¯ãã®å 容ã¯éä¿¡ãããŸããã
ããŒãã·ãŒã ããŒãžã§ã³ 1.0.0