npxノードパッケージランナー

npxはノードコードを実行するための非常にクールな方法であり、多くの便利な機能を提供します

この投稿では、で利用できる非常に強力なコマンドを紹介したいと思います。npm2017年7月にリリースされたバージョン5.2以降:npx

npmをインストールしたくない場合は、npxをスタンドアロンパッケージとしてインストールする

npxNodeでビルドされ、npmレジストリを介して公開されたコードを実行できます。

ローカルコマンドを簡単に実行

ノード開発者は、実行可能コマンドのほとんどをグローバルパッケージとして公開し、パスに入れてすぐに実行できるようにしました。

同じコマンドの異なるバージョンを実際にインストールすることはできなかったため、これは苦痛でした。

ランニングnpx commandname内のコマンドの正しい参照を自動的に見つけますnode_modulesプロジェクトのフォルダ。正確なパスを知る必要はなく、パッケージをグローバルにユーザーのパスにインストールする必要もありません。

インストールなしのコマンド実行

のもう一つの素晴らしい機能がありますnpm、最初にコマンドをインストールせずにコマンドを実行できるようにします。

これは非常に便利です。主な理由は次のとおりです。

1)何もインストールする必要はありません2)構文@versionを使用して、同じコマンドの異なるバージョンを実行できます

使用の典型的なデモンストレーションnpxを通してですcowsayコマンド。cowsayコマンドで書いたことを言っている牛を印刷します。例えば:

cowsay "Hello"印刷します

 _______
< Hello >
 -------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Now, this if you have the cowsay command globally installed from npm previously, otherwise you’ll get an error when you try to run the command.

npx allows you to run that npm command without having it installed locally:

npx cowsay "Hello"

will do the job.

Now, this is a funny useless command. Other scenarios include:

  • running the vue CLI tool to create new applications and run them: npx vue create my-vue-app
  • creating a new React app using create-react-app: npx create-react-app my-react-app

and many more.

Once downloaded, the downloaded code will be wiped.

Run some code using a different Node version

Use the @ to specify the version, and combine that with the node npm package:

npx [email protected] -v #v6.14.3
npx [email protected] -v #v8.11.3

This helps to avoid tools like nvm or the other Node version management tools.

Run arbitrary code snippets directly from a URL

npx does not limit you to the packages published on the npm registry.

You can run code that sits in a GitHub gist, for example:

npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32

Of course, you need to be careful when running code that you do not control, as with great power comes great responsibility.

Download my free Node.js Handbook


More node tutorials: