<p>npxに盞圓する糞</p>

䜜成日 2017幎07月15日  Â·  35コメント  Â·  ゜ヌス: yarnpkg/yarn

ダヌンはnpxの䜿甚をどのように掚奚しおいたすかこれは珟圚npmのコア郚分です-https//github.com/npm/npm/pull/17685。

基本的には、䟝存関係がない堎合にパッケヌゞマネヌゞャヌを起動するこずを陀けば、rubyの「bundleexec」のように機胜したす。 これにより、yarnが回避され、npmに戻りたす。

これを行うために糞を掻甚する「ypx」同等物を䜜成する蚈画はありたすか

cat-feature

最も参考になるコメント

@ sandys- @ zkatが参照する問題npm / npm6053は、 yarn x たたは、必芁に応じおyarn run x実行できるため、 yarnでは問題になりたせん。明瀺的 xが./node_modules/.binディレクトリにある堎合。 したがっお、 npx同等性に察する差し迫った必芁性はないず思いたす。

匷いニヌズがあるず思うなら、なぜそれが必芁なのか説明できたすか 䟋えば。 それはあなたのためにどんな問題を解決したすか

党おのコメント35件

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の動䜜を拡匵したものです。

  1. 珟圚のディレクトリの./node_modules/.bin/にあるロヌカルパッケヌゞのコマンドを実行したす
  2. パッケヌゞがロヌカルに存圚しない堎合、たたは./node_modules/ディレクトリが存圚しない堎合は、䟝存関係のある䞀時ディレクトリにパッケヌゞをダりンロヌドしお、コマンドを呌び出したす。

これは、ナヌザヌに察しお透過的に行われたす。

架空のypxは、次の3番目のポむントも提䟛できたす。

  1. パッケヌゞがロヌカルに存圚せず、yarnキャッシュに存圚し、最新バヌゞョンず䞀臎する堎合は、すべおのパッケヌゞをダりンロヌドする代わりに、キャッシュを䜿甚しおコマンドを呌び出したす。

@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に関する珟圚の問題は次のずおりです。

  1. 䟝存関係のある䞍圚のパッケヌゞを毎回ダりンロヌドしたす。
  2. ダヌン指向のプロゞェクトでpackage-lock.jsonを䜜成するため、譊告が発生し、手動で削陀する必芁がありたす。
    具䜓的には、 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に関する珟圚の問題は次のずおりです。

  1. 䟝存関係のある䞍圚のパッケヌゞを毎回ダりンロヌドしたす。
  2. ダヌン指向のプロゞェクトで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

https://yarnpkg.github.io/berry/cli/dlx

うん 今のずころこの問題を閉じお、機胜を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

ダヌン䜜成npxnpm init

デモ

https://www.npmjs.com/package/create-react-app

$ yarn create react-app

$ npx create-react-app

$ npm init react-app

image

https://www.npmtrends.com/npm-vs-npx-vs-yarn

image

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に戻るようになりたす。

https://yarnpkg.com/en/docs/cli/exec

404ペヌゞが芋぀かりたせん

@delanymはこのペヌゞを意味しおいるず思いたすただし、これがnpx耇補しおいるずは思いたせん https 

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡