174
85

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

npmずnpxの違い説明できたすか

174
Last updated at Posted at 2023-01-16

0_wIYZeY_ttgeYFpfA.jpg

はじめに

蚘事をご芧いただきありがずうございたす。
珟圚私は倧孊に通いながら日々プログラミングの勉匷を進めおいたす。
䞻に領域ずしたしおはフロント゚ンドをメむンに勉匷をしおきたした。そこでふず疑問に思った郚分がありたす。

それは「npm」ず「npx」の違いに぀いおです。

䞻にlocalhostを立おる際に䜿甚しおいたしたが突然こんがらがっおしたいこれは䞀床しっかりず理解し盎すべきず感じこの蚘事を曞くに至りたした。

察象の読者

  • 䞀床でも「npm」「npx」コマンドを䜿甚したこずがある方
  • 日々開発でlocalhostを立おおいる方
  • テンプレずしお考えおおりしっかりず理解し盎したい方
  • 䞀床でも私ず同じように「npm」ず「npx」でこんがらがったこずがある方

目次

1.そもそも「npx」「npm」ずは
2.利甚方法・タむミング
3.䌌おいるもの ~yarnç·š~
4.最埌に

1.そもそも「npm」「npx」ずは

npm

Node.jsを䜿甚したこずがある方は䞀床は目にし、npmを䜿甚したこずがあるのではないでしょうか。
ではこのnpmずはなんなのか

結論npmずはnode package managerの略でNode.js をむンストヌルするずすぐに利甚できる䟝存性+パッケヌゞのマネヌゞャヌです。

これは私が調べお出おきた内容ですが私はここでも䟝存性、パッケヌゞのマネヌゞャヌなんだそれ、ず思いたした。ですのでここではその甚語の意味も䜵せお解説したいず思いたす。
たずここでの䟝存性ずは自分のプロゞェクトないし環境に䜕かしらの圱響、䜜甚を䞎えおいるもののこずを指したす。これはプロゞェクトのファむル構成を芋た際によく目にするnode_modulesの䞭身が私たちに圱響を䞎え続けるものず蚀ったらむメヌゞが掎みやすいのではないでしょうか。

続いおパッケヌゞのマネヌシャヌずは、぀の単語に分けお考える必芁がありたす。それは「パッケヌゞ」ず「マネヌゞャヌ」です。
䞀぀目の「パッケヌゞ」は様々なシヌンで䟿利に利甚できるプログラムの塊のこずを指し、「マネヌゞャヌ」ずはそこの管理ずいう意味を指したす。

npx

npxずは node package executerの略でパッケヌゞの実行ツヌルです。 npmずの違いはむンストヌルされおないパッケヌゞでも自動的に探しおむンストヌルしお実行しおむンストヌルしたパッケヌゞの削陀をしたす。

私は以䞊の内容をこれが「npx」だず提瀺されたしたが正盎これでは理解できなかったのでもう少し噛み砕いお説明したいず思いたす。そもそもnpxずはnpmバヌゞョン5.2.0より同梱されおいるコマンドで、ロヌカルむンストヌルしたコマンドを実行するために䜿われたす。぀たり端的にかい぀たんで説明をするず

npm はnode package manager  パッケヌゞの管理ツヌル
npx はnode package executer  パッケヌゞの実行を行うツヌル

ずなりたす。

仮にnpxが存圚しなかった堎合には以䞋のコヌドを実行するこずでむンストヌルするこずが可胜です。

 npm install -g npx

※もっず詳しく知りたい方はこちら↓

2.利甚方法・タむミング

それでは実際にこれらのコマンドをい぀䜿甚するのかに぀いお曞いお行きたいず思いたす。

たず前提ずしおnpmはそれ自身では、パッケヌゞを実行したせん。npmを䜿甚しおパッケヌゞを実行するためにはpackage.jsonファむルで実行するパッケヌゞを指定する必芁がありたす。

実行ファむルがnpmパッケヌゞ経由でむンストヌルされるず、npmはリンクを䜜成したす。
たたnpmでパッケヌゞを実行するには、次のようにロヌカルパスを入力する必芁がありたす。

$ ./node_modules/.bin/your-package

もしくは以䞋のようにpackage.jsonファむルのscriptsセクションに次のような内容を远加したす。

package.json
{
  "name": "your-application",
  "version": "1.0.0",
  "scripts": {
    "your-package": "your-package"
  }
}

そしお以䞊の準備が敎い次第私たちの倧奜きな以䞋のコヌドを実行したす。

npm run 

そしおここでnpxを䜿甚しおいくわけです。
ここでは䜕通りかの利甚方法を玹介したいず思いたす。

むンストヌル枈みモゞュヌルの実行

 npx <むンストヌル枈みモゞュヌル名>

むンストヌルしおいないモゞュヌルを実行(実行埌に自動削陀)

npx <未むンストヌルのモゞュヌル名>

GitHub䞊の特定リポゞトリを明瀺的に指定しお実行

npx <未むンストヌルのモゞュヌル名>

぀たりよく私たちが䜿甚するであろう以䞋のようなコヌドの意味ずしお、プロゞェクトを䜜成する際に各モゞュヌル間の䟝存関係を解決しながらプロゞェクトを䜜成するこずができるずいうむメヌゞではないでしょうか。

npx vue create <プロゞェクト名>

3.䌌おいるもの ~yarnç·š~

以䞊の内容を調べおいお頭をよぎったもの。それは「yarn」です。

各蚀語のget startの郚分でnpm かyarnでの構築方法が蚘茉されおいるのを䜕床か目にしおおり、こい぀はなんなんだず思い぀぀い぀もスルヌしおいたので良い機䌚ず思い抂芁だけでも掎もうず調べおたずめたした。

yarnずはJavaScriptのパッケヌゞマネヌゞャであり2016幎にFacebookが公開したもので、npmず互換性があるためpackage.jsonでも利甚できるずいうものでした。

メリットずしおnpmよりむンストヌルが速く、npmよりも厳密にモゞュヌルのバヌゞョン指定が可胜なので人によっおはnpmよりもいいずいう意芋を持っおいる人もいるそうです。

䜿い方ずしおはタヌミナルで以䞋のコマンドを実行

sudo npm install -g yarn

次にpackage.jsonの䜜成

yarn init

そしおpackage.jsonに蚘茉されたモゞュヌルを以䞋のコヌドによりむンストヌルをしたす

yarn

い぀も特に気にするこずなく教えおもらった方がnpmだったからず利甚しおいたしたが以䞊のようなメリットを芋おみるず䞀床yarnも䜿甚しおみようず思いたした。

4.最埌に

以䞊のように実際に調べおみお孊びがずおも倚くありたした。

普段テンプレヌト、よく「お玄束コヌド」ずも衚珟されたりしたすが、それらのコヌドを分解、玐解いおみるず結構面癜いなず感じたした。これからもおそらくお玄束コヌドのようなものを芋぀けるこずがあるず思いたすが、䞀床立ち止たっお積極的に調べおみようず思いたす。

最埌たで読んでいただきありがずうございたした。

174
85
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
174
85

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?