npx紹介
3010 ワード
what
npxは現在の依存パッケージの実行可能ファイルを自動的に検索し、見つからない場合はPATHに検索します.まだ見つからない場合は、インストールしてあげます!
zkat/npxの説明によると、npxは依存パッケージのバイナリファイルを実行します.
たとえば、前にこのようなコマンドを書いたかもしれません.
bashに詳しいならこんな風に書くかもしれません
npxがあれば、あなたはこのようにするだけです.
npxは、リモート・ウェアハウスを実行する実行可能なファイル、例えば
なぜnpxを使うのか
グローバルコマンド、インストールなし
グローバルインストールの劣勢:本機のスペースを占有npmはmachineにディレクトリを作成する(macは/usr/local/lib/node_modules)globalがインストールしたすべてのパッケージを格納するが、実はnode_moduleが占有するスペースが比較的大きい バージョンの問題1つのプロジェクトのいずれかのdependencyがグローバルにインストールされている場合、異なる開発者が使用するこのdependencyバージョンは完全にローカルのバージョンに基づいていることを意味し、異なる開発者が異なるバージョンを使用してnpxを使用するメリットも明らかになります. npxがこのcommandを現地で探してくれる 見つかった:ローカルバージョンで 見つからなかった:最新バージョンを直接ダウンロードし、命令要求を完了する 使用後は本体やアイテムに何も残らない
したがってnpxの利点のまとめ:本機を汚染しない 常に最新バージョンのdependencyを使用 任意のcommandはnpxを介してmachineの任意の場所で使用されます.
例を挙げると、ある項目で使用あなたも利用可能 彼の限界は大きいです
あなたの
しかし、npxがbabel commandを任意の場所で使用するのは難題ではないようです.
いずれかの場所(ルートディレクトリ下/プロジェクトルート下)で実行すると
npxは本機の下のbabelを見つけて実行します
one-off命令の実行を支援
create-react-appなどのツールには、いくつかの特性があります.1回しか使われないかも 実装パッケージが大きい 私たちは本当に彼らをパソコンにインストールする必要がないようなので、直接使用できます
nvmがない場合は、nodeバージョンを簡単に切り替えて、本機にインストールされているnodeバージョンがnode@8しかし、あなたのプロジェクトは使用する必要があるかもしれません.node@6テストをして、nvmがあれば、nvm use v 8.11を使ってもいいですが、実はnpxもできます.
使用npxがダウンロードしてくれるnode@6 このときの環境をnode@6バージョン 使用node@6npm run testを実行してあげます 命令実行後は元のnodeバージョンは変更しない 命令は使用と理解できるnode@6バージョン運転
npxは現在の依存パッケージの実行可能ファイルを自動的に検索し、見つからない場合はPATHに検索します.まだ見つからない場合は、インストールしてあげます!
zkat/npxの説明によると、npxは依存パッケージのバイナリファイルを実行します.
たとえば、前にこのようなコマンドを書いたかもしれません.
npm i -D webpack
./node_modules/.bin/webpack -v
bashに詳しいならこんな風に書くかもしれません
npm i -D webpack
`npm bin`/webpack -v
npxがあれば、あなたはこのようにするだけです.
npx webpack -v
npxは、リモート・ウェアハウスを実行する実行可能なファイル、例えば
$ npx github:piuccio/cowsay hello
npx: 1 , 1.663
_______
< hello >
-------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
なぜnpxを使うのか
グローバルコマンド、インストールなし
$ npx @vue/cli -V
#
$ npm install @vue/cli -g
$ vue -V
グローバルインストールの劣勢:
したがってnpxの利点のまとめ:
例を挙げると、ある項目で使用
npm install --save-dev @babel/core @babel/cli
インストールbabel
.この場合、コマンドラインで使用するbabel script.js
必ず誤報をするbabel
存在しない、あなたのnode_module
中babel
静かに横になっていても、2つの方法しか使用できないbabel
:package.json
のscript
で使用可能babel
行きcompile
いずれかdirectory
(npm run-script形式で)./node_modules/.bin/babel script.js
用babel
行きcompile
いずれかscript
ファイル(babelパッケージの実行可能ファイルを使用)あなたの
node_module
中にはbabel
、あなたのmachineに等しいbabel
がありますが、どの位置でも便利に使えませんbabel
、以上の2つの方法しか通じません.しかし、npxがbabel commandを任意の場所で使用するのは難題ではないようです.
いずれかの場所(ルートディレクトリ下/プロジェクトルート下)で実行すると
npx babel script.js
誤報はありませんbabel
存在しません:npxは本機の下のbabelを見つけて実行します
one-off命令の実行を支援
create-react-appなどのツールには、いくつかの特性があります.
npx tool-command
バージョンの切り替えnpx
の-p
オプションでインストールするパッケージを指定し、実行中の$PATH
に追加できます.では、実用的なcase
とは何でしょうか.nvmがない場合は、nodeバージョンを簡単に切り替えて、本機にインストールされているnodeバージョンがnode@8しかし、あなたのプロジェクトは使用する必要があるかもしれません.node@6テストをして、nvmがあれば、nvm use v 8.11を使ってもいいですが、実はnpxもできます.
使用
npx -p node@6 npm run test
:npm run test
SHELL AUTO FALLBACKでnpxをすべての命令として見つからないfallbackアドレス