ã€ãŒã³ã¯npxã®äœ¿çšãã©ã®ããã«æšå¥šããŠããŸããïŒããã¯çŸåšnpmã®ã³ã¢éšåã§ã-httpsïŒ//github.com/npm/npm/pull/17685ïŒã
åºæ¬çã«ã¯ãäŸåé¢ä¿ããªãå Žåã«ããã±ãŒãžãããŒãžã£ãŒãèµ·åããããšãé€ãã°ãrubyã®ãbundleexecãã®ããã«æ©èœããŸãã ããã«ãããyarnãåé¿ãããnpmã«æ»ããŸãã
ãããè¡ãããã«ç³žã掻çšãããypxãåçç©ãäœæããèšç»ã¯ãããŸããïŒ
npxã¯ããyarn createãã«è§ŠçºããããšæããŸããããã¯äŒŒãŠããŸãããæ¥é èŸãcreate-ããä»ããããã±ãŒãžã§ã®ã¿æ©èœããŸãã èšç»ãããã«ãããããããªãã
ã¯ããçŸåšyarn create
ïŒããšãã°ã yarn create react-app
ã䜿çšããŠã¿ãŠãã ããïŒã å°æ¥ãä»ã®åè©ã«å
¬éããå¯èœæ§ããããŸãããããã¯ãŸã ããŒããããã«å«ãŸããŠããŸããã
ç§ã¯ã©ã€ãã©ãªånpxã«åãçµãã§ããŸãã æ¢åã®npxã³ãŒããååŸããnpmé¢é£ã®å èãyarnãšåçã®ã³ãã³ãã«çœ®ãæããããšã¯å€§ããªäœæ¥ã§ã¯ãããŸããã
äžå¯ç¥è«çã§ããããšã_æå³ãããã®ã§ããããnpxèªäœã«çŽæ¥è¿œå ããŸãããnpxã¯ä»ã®ããã±ãŒãžãããŒãžã£ãŒã䜿çšããŠãã人ã
ãšè¡çªããæäœãå®è¡ããŸããã npmãã·ã¹ãã äžã«ããå¿
èŠãããªãã®ã§ã npm rm -g npm
ãnpxã¯åé¡ãªãåäœããŸãã ãããã£ãŠããã£ãã·ã¥å
±æã«ã€ããŠæ¬åœã«åŒ·ãæããªãéããnpx _is_ ypx
ãšèšãããšãã§ããŸããããã¯ããªãã®ããšã§ãã
ïŒã€ã³ã¹ãã¬ãŒã·ã§ã³ïŒnpxã¯ãäž»ã«ãã®é·å¹Žã®æ©èœãªã¯ãšã¹ãã«è§ŠçºãããŠããŸãïŒhttpsïŒ//github.com/npm/npm/issues/6053ããã®æ©èœã®ã»ãšãã©ã¯ã_this_ã®ããŒãºãæºããããšã«éç¹ã眮ããŠããŸããèªåã€ã³ã¹ããŒã«æ©èœã¯_was_è¿œå ãããŸããpost-yarn-createã§ããããã®ç¹å®ã®ãã®ã«å¯Ÿããå®éã®äžè¬åããããœãªã¥ãŒã·ã§ã³ã«ãªãããšã確å®ã«æå³ããŠããŸããããããããã¯ããã«å€ãã®ããšãè¡ããŸãïŒ
@ sandys- @ zkatãåç
§ããåé¡ïŒnpm / npmïŒ6053ïŒã¯ã yarn x
ïŒãŸãã¯ãå¿
èŠã«å¿ããŠyarn run x
å®è¡ã§ããããã yarn
ã§ã¯åé¡ã«ãªããŸãããæ瀺çïŒ x
ã./node_modules/.bin
ãã£ã¬ã¯ããªã«ããå Žåã ãããã£ãŠã npx
åçæ§ã«å¯Ÿããå·®ãè¿«ã£ãå¿
èŠæ§ã¯ãªããšæããŸãã
匷ãããŒãºããããšæããªãããªããããå¿ èŠãªã®ã説æã§ããŸããïŒ äŸãã°ã ããã¯ããªãã®ããã«ã©ããªåé¡ã解決ããŸããïŒ
yarn exec
ãbundle exec
䌌ãŠãããã©ãã誰ããç¥ã£ãŠããŸããïŒ CLIã«ã¯è¡šç€ºãããŸãããWebãµã€ãã®ããã¥ã¡ã³ãã«ã¯è¡šç€ºãããŸããã ã³ãã³ãã©ã€ã³ã§yarn exec
ããã°ããåçãããšãã€ã³ã¹ããŒã«ããããã€ããªãå®è¡ãããããã«èŠããããã@ sandysã®åé¡ã解決ã§ããå¯èœæ§ããããŸãã
FWIWã npm-runã¯ãããŒã«ã«ã®node_modules
ãã€ããªãå®è¡ã§ããå€ããŠãŒãã£ãªãã£ã§ããã npm
äŸåããŸããã ãã ãããªãã·ã§ã³ã¯ãããŸãããã npx
ã¯ããããããããããŸãã
@BYKãŠãŒã¹ã±ãŒã¹ã¯ããããžã§ã¯ãèªäœã«depsãšããŠè¿œå ããã«ãCIã§ypx greenkeeper-lockfile@1
ãŸãã¯ypx danger@2
ãå®è¡ããŠããŸãã
@SimenB CIã¯éåžžããããžã§ã¯ããããŒãžã§ã³ç®¡çã«ã³ãããããŸããããããã£ãŠãããã»ã¹ã«äŸåé¢ä¿ãè¿œå ãããã©ããã¯åé¡ã§ã¯ãããŸããã
@MarkBennett yarn exec
ã¯package.json
ããã¹ã¯ãªãããå®è¡ããªãããããã®æ©èœãè¿œå ããã®ã«é©åãªå Žæã§ã¯ãªããšæããŸãã
@BYKç§ã¯OPã§ã¯ãããŸããããããŒã«ã«ãã·ã³ã«ããã±ãŒãžããããpackage.jsonã«ã¯ãªãããããã®æ©èœãªã¯ãšã¹ãã«bundle exec
ã®æ©èœã§ãããã¹ãŠã®éšéããããã§ã¹ãã«å«ãŸããŠããªãéããå®è¡ãããŸããã
yarn x
ã«ã€ããŠã®ç§ã®äž»ãªäžæºã¯ã3ã€ã®ç°ãªãå ŽæïŒyarnå
éšã³ãã³ããnpmã¹ã¯ãªãããããã³ãã³ïŒããã¿ãŒã²ããã解決ããããšããŠããããšã§ãã
check
ãšããååã®ãã€ããªãæã€ããŒã«ããããšããŸãããïŒ1ïŒ yarn check
ã¯ä»£ããã«ç¬èªã®å
éšcheck
ã³ãã³ããå®è¡ããŸã2ïŒ yarn run check
ã¯ã³ã³ã·ã¥ãŒããŒã®npmãå®è¡ããŸããã®ãããªååã®ã¹ã¯ãªãããŸãã¯å€åç§ã®ããŒã«ã
npx
ã¯ãæŠå¿µã匷åã«åé¢ããŸãã yarn x
ã¯åžžã«å
éšã³ãã³ãã yarn run x
ã¯åžžã«ã¹ã¯ãªããã npx x
ã¯åžžã«ãã€ããªã§ãããå¿
èŠãããŸãããæšæž¬ããŠåžæããã
èŠæšã®ãããªãã®
#!/usr/bin/env bash
package_name=$1
temp_dir="/tmp/ypx/$package_name/$(date +%s%N)"
mkdir -p $temp_dir
(cd $temp_dir; yarn add $package_name) && (PATH="$temp_dir/node_modules/.bin":$PATH; "$@")
rm -rf $temp_dir
@BYKå¥ã®ãŠãŒã¹ã±ãŒã¹ã¯ããŸã ããŒã«ã«ã«ã€ã³ã¹ããŒã«ãããŠããªãããã±ãŒãžã®_binary_ãå®è¡ããŠããŠãåŸã§èªåã§åé€ããããšãªããäžåºŠå®è¡ããããšèããŠããŸãã npx
é¢æ°ã¯ã次ã®ããšãã§ããããã yarn x
ã®åäœãæ¡åŒµãããã®ã§ãã
./node_modules/.bin/
ã«ããããŒã«ã«ããã±ãŒãžã®ã³ãã³ããå®è¡ããŸã./node_modules/
ãã£ã¬ã¯ããªãååšããªãå Žåã¯ãäŸåé¢ä¿ã®ããäžæãã£ã¬ã¯ããªã«ããã±ãŒãžãããŠã³ããŒãããŠãã³ãã³ããåŒã³åºããŸããããã¯ããŠãŒã¶ãŒã«å¯ŸããŠééçã«è¡ãããŸãã
æ¶ç©ºã®ypx
ã¯ã次ã®3çªç®ã®ãã€ã³ããæäŸã§ããŸãã
@BYKåäœããŸããã
babel-cli
ãã€ã³ã¹ããŒã«ããŸããäŸïŒ yarn add babel-cli
次ã«ã yarn babel-node --presets es2015 ./server.js
ãå®è¡ããŸãã server.js
ã¯çŸåšã®ãã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ã§ãããåçŽãªexpress
apiãµãŒããŒã§ãã
ããã¯åã«æ©èœããããã¡ã€ã«ãååšããªãããšã瀺ããŠããŸãã ïŒ Error: Cannot find module
ïŒ
ãããã npx
䜿çšãããšnpx babel-node --presets es2015 ./server.js
@BYKç§ã®ç¥ãéããnpxã¯ããŒã«ã«ãã·ã³ã®node_module/.bin/
ã§ã³ãã³ããæ€çŽ¢ããé©åãªã³ãã³ããèŠã€ãããªãã£ãå Žåã¯ãWebããããã±ãŒãžãååŸããåžžã«ææ°ã®ç¶æ
ã«ä¿ã€ããšãã§ããŸãã ã
ããŒã«ã«ãã·ã³ã«ã€ã³ã¹ããŒã«ãããŠããªãéãã€ãŒã³ã¯Webããããã±ãŒãžãååŸããŸããã
yarnx
ãååŸã§ããŸããïŒ
@ light24bulbsãªãç¹ã«ïŒ
ççŽã«èšã£ãŠã npx
ã¯ãå°ããnpm incããäžå¿ïŒå
¬å¹³ã«èšãã°ãnpmã®ããŒã«ã®æ°ãšåããããïŒã§ãã£ãŠããåªããããŒã«ã ãšæããŸãã yarnx
ã¯ãã®åé¡ã解決ããªãã®ã§ïŒå¿
ç¶çã«ç³žäžå¿ã«ãªãã§ãããïŒããããè¯ãèãã§ãããã©ããã¯ããŸãããããŸããã
çæ³çã«ã¯ã䜿çšããããã±ãŒãžãããŒãžã£ãŒãèªåçã«æ€åºããããå°ãªããšãrcãã¡ã€ã«å
ã§æ§æã§ããããã«ããããã«npx
ã䜿çšããããšããå§ãããŸãã ãã®åé¡ã圌ãã«æã£ãŠããŠã圌ããäœãèšã£ãŠãããèŠãŠã¿ãããšããå§ãããŸãã 圌ãã®çãã«å¿ããŠãç§ãã¡ã¯æ
å ±ã«åºã¥ããè°è«ãããããšãã§ããŸãð
@arcanis npxèªäœã¯npmã«ãã³ãã«ãããŠãããããnpmãšçµã¿åããããŠããŸã- libnpx
ã¯ããã§ã¯ãªããå®éãpnpmã®pnpx
ãå
éšã§äœ¿çšããŠãããã®ã§ãã Zoltanãå¯èœã«ããããã«ãããã€ãã®ããããè¿œå ããŸããã èªåæ€åºã®ãµããŒãã¯è¿œå ããŸãããçµ±åã®äžéšãåé€ããããµããŒããããè€éã§å°é£ã«ãªãããã§ã:)
ãã®åé¡ãã°ãŒã°ã«ã§æ€çŽ¢ãããšãããæŽæ°ã«ã€ããŠè³ªåããã®ã«é©åãªå Žæã ãšæããŸãã æ¢åã®ããŒã«/ãœãªã¥ãŒã·ã§ã³ã¯ãããŸããããŸãã¯ç³žã«ããã€ãã®æ©èœãè¿œå ããäºå®ã¯ãããŸããïŒ
ããšãã°ãnpxã«é¢ããçŸåšã®åé¡ã¯æ¬¡ã®ãšããã§ãã
npx gatsby new blog https://github.com/gatsbyjs/gatsby-starter-blog
å®è¡ããã ãã§ãïŒãã®åé¡ã¯äž¡æ¹ãšãã @ phraã3çªç®ã®ãã€ã³ããšããŠãã§ã«è¿°ã¹ãŠãããããªç³žã解決ããã®ã«å®å šã«äžèŽããŠããããã«èŠããŸãã
UPDïŒåºæ¬çã«ypx
äž»ãªçç±ã¯ããã€ããªå®è¡ïŒyarnã§ã¯ãŸã£ããåé¡ãããŸããïŒã§ã¯ãªããå®è¡ããäºå®ã®ããã±ãŒãžãèªåããŠã³ããŒãããæ©èœã§ãã
åæããŸãã ãŸããNPMã®å¥åŠãªAPIãæ¹åããæ©äŒããããšæããŸã
å°ãã yarn exec COMMAND
ãåŒã³åºãæ¹ãçã«ããªã£ãŠãããšæããŸã
yarnx
ã Rubyãã³ãã©ãŒã«ã¯éåžžã«ãã䌌ãã³ãã³ãããããŸãã
https://bundler.io/man/bundle-exec.1.html
2ïŒ29 PMããã«Prokudinã§æã2018幎12æ17æ¥ã«ã¯[email protected]
æžããŸããïŒ
ãã®åé¡ãã°ãŒã°ã«ã§æ€çŽ¢ãããšããã質åããã®ã«é©åãªå Žæã ãšæããŸã
æŽæ°ã æ¢åã®ããŒã«/ãœãªã¥ãŒã·ã§ã³ã¯ãããŸããããŸãã¯ããã€ãè¿œå ããäºå®ã¯ãããŸãã
糞ãžã®æ©èœïŒ
ããšãã°ãnpxã«é¢ããçŸåšã®åé¡ã¯æ¬¡ã®ãšããã§ãã
- äŸåé¢ä¿ã®ããäžåšã®ããã±ãŒãžãæ¯åããŠã³ããŒãããŸãã
- ã€ãŒã³æåã®ãããžã§ã¯ãã§package-lock.jsonãäœæããŸãã
èŠåãšæã§ãããåé€ããå¿ èŠããããŸãã
ïŒå ·äœçã«ã¯ãnpxgatsbyã®æ°ããããã°ãå®è¡ããã ãã§ã
https://github.com/gatsbyjs/gatsby-starter-blogïŒãã®åé¡ã¯äž¡æ¹ãšãã@ phraã®ãããªç³žã解決ããã®ã«å®å šã«äžèŽããŠããããã«èŠããŸã
https://github.com/phraã¯ãã§ã«åœŒã®3çªç®ã®ãã€ã³ããšããŠèšåããŠãâ
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/yarnpkg/yarn/issues/3937#issuecomment-447968558 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/AAjhEng6juvpaK4xLx1KrVHccJAytnAfks5u5_CcgaJpZM4OY9aL
ã
-
-äŒæ¯ã®ããã®
yarn exec
ãã§ã«ååšããŸãïŒããªããææ¡ãããã®ãšã¯ç°ãªãæå³ã§ïŒð
æ°ããyarn dlx
ãã®åé¡ã解決ããŸããïŒ
cc @sandys @arcanis
ããïŒ ä»ã®ãšãããã®åé¡ãéããŠãæ©èœãv1ã«ããã¯ããŒããããã©ããã¯ãŸã ããããŸããïŒããããããã§ã¯ãããŸãããïŒïŒã
ããã䟡å€ã®ãã代æ¿åãã©ããã¯ããããŸããã yarn dlx eslint --help
ã¯ç§ã®ãã·ã³ã§ã¯2.7ç§ããããŸããã npx eslint --help
ã¯0.2ç§ã§çµäºããŸãã å€ãã®binã¹ã¯ãªãããåŒã³åºããšãããã«èš±å®¹ã§ããªãå€ã«ãªããŸãã
ãŸããã¹ã¯ãªããã®åºåã解æã§ããããã«ããããã«ããšã©ãŒããªãéããstdout / stderrãyarnã§æžã蟌ãã¹ãã§ã¯ãªããšæããŸãã
@silverwindã¿ã€ãã³ã°ã®éãã¯ããªãå³ããããã§ãã ããã¯è€æ°ã®å®è¡ã§äžè²«ããŠåçŸå¯èœã§ããïŒ ãããããªããç§ãã¡ã¯ãããé ããªãããšã確ãã«æãŸãªãã®ã§ã調æ»ã®ããã«æ°ããåé¡ãæåºããŸãã
Yarnã®stdout / stderrã«é¢ããŠã¯ã yarn --silend dlx eslint
ã䜿çšããŠãéèŠã§ã¯ãªãYarnã®åºåããã¹ãŠæå¶ããããšãã§ãããšæããŸãã @arcanisãã®æåŸã®ãã®ã確èªã§ããŸããïŒ
@ light24bulbsãªãç¹ã«ïŒ
Webã§ããã±ãŒãžãèŠã€ãããã¹ãŠã®äººã¯ãã€ã³ã¹ããŒã«æé ã«npx something something
ãå«ãŸããŠãããã糞ã®äžçã«çãŸããããšèããŠããããšã確èªããŠãã ããã
æ°ãã
yarn dlx
ãã®åé¡ã解決ããŸããïŒ
ããyarn dlx
æ£ç¢ºãªs/npx/yarn dlx/
ããããã€ã³ã®ä»£æ¿npx
ïŒ ããã§ãªãå Žåã¯ããã®åé¡ã¯è§£æ±ºãããŸããã
ãããè©ŠããŠ
https://www.npmjs.com/package/ynpx
ãã¢
https://www.npmjs.com/package/create-react-app
$ yarn create react-app
$ npx create-react-app
$ npm init react-app
light24bulbs @ -ãšã³ãŒ@rulatirã«ãã®ã§ãç§ã¯ããã«æ¥ãã¹ããŒãªãŒããã¯ã®ã¯ã€ãã¯ã¹ã¿ãŒãã¬ã€ãã䜿çšããããšãèšããŸãnpx
ããããã€ã³ã¹ããŒã«ããã«ã¯ããšç§ã¯åçã®åªæãincantããæ¹æ³ã®ããã®ç°¡åãªã¬ã·ãããããŸããã§ããyarn
ã ã€ãŒã³ã«åçã®ã³ãã³ãã»ãããããå Žåã¯ãã€ãŒã³ã®Webãµã€ãã«æçš¿ããŠãïŒãã®ã¹ã¬ããã§ã¯ãªãïŒããŒãžããã€ãŒã³ããŒãžã§ã³ã®npxãã®Googleæ€çŽ¢çµæã®äžéšã«è¡šç€ºãããããã«ããå¿
èŠããããŸãã
ç§ã@codekilnãšåãè¹ã«ä¹ã£ãŠããŸãã npx ...
å®è¡ãããšããæ瀺ã«åŸã£ãŠãããšãã¯ãã€ã§ãã yarn
çžåœãããã®ãäœã§ãããããããŸããã äŸã¯npxtslint-to-eslint-configã§ãã
light24bulbs @ -ãšã³ãŒ@rulatirã«ãã®ã§ãç§ã¯ããã«æ¥ãã¹ããŒãªãŒããã¯ã®ã¯ã€ãã¯ã¹ã¿ãŒãã¬ã€ãã䜿çšããããšãèšããŸã
npx
ããããã€ã³ã¹ããŒã«ããã«ã¯ããšç§ã¯åçã®åªæãincantããæ¹æ³ã®ããã®ç°¡åãªã¬ã·ãããããŸããã§ããyarn
ã ã€ãŒã³ã«åçã®ã³ãã³ãã»ãããããå Žåã¯ãã€ãŒã³ã®Webãµã€ãã«æçš¿ããŠãïŒãã®ã¹ã¬ããã§ã¯ãªãïŒããŒãžããã€ãŒã³ããŒãžã§ã³ã®npxãã®Googleæ€çŽ¢çµæã®äžéšã«è¡šç€ºãããããã«ããå¿ èŠããããŸãã
ããã§ãåãã§ãããcapatorjsã€ã³ã¹ããŒã«ã¬ã€ãhttps://capacitorjs.com/docs/getting-startedã䜿çšãããšããŠãŒã¶ãŒã¯ç³žãæšãŠãŠnpmã«æ»ãããã«ãªããŸãã
404ïŒããŒãžãèŠã€ãããŸãã
@delanymã¯ãã®ããŒãžãæå³ããŠãããšæããŸãïŒãã ãããããnpx
è€è£œããŠãããšã¯æããŸããïŒïŒ https ïŒ
æãåèã«ãªãã³ã¡ã³ã
@ sandys- @ zkatãåç §ããåé¡ïŒnpm / npmïŒ6053ïŒã¯ã
yarn x
ïŒãŸãã¯ãå¿ èŠã«å¿ããŠyarn run x
å®è¡ã§ãããããyarn
ã§ã¯åé¡ã«ãªããŸãããæ瀺çïŒx
ã./node_modules/.bin
ãã£ã¬ã¯ããªã«ããå Žåã ãããã£ãŠãnpx
åçæ§ã«å¯Ÿããå·®ãè¿«ã£ãå¿ èŠæ§ã¯ãªããšæããŸãã匷ãããŒãºããããšæããªãããªããããå¿ èŠãªã®ã説æã§ããŸããïŒ äŸãã°ã ããã¯ããªãã®ããã«ã©ããªåé¡ã解決ããŸããïŒ