未分類

パッケージ

投稿日:

今日は普段使っているパッケージについて学びました。いつもパッケージ管理ソフトのyarnを使ってインストールやら実行やらを行っているのですが、それが内部でどのような動きをしているのかなんて考えたこともありませんでした。詰まるところyarnも所詮コマンドなので順を追っていけば必ずやっていることがわかるのですが、実行速度が早すぎて理解しづらいだけなのです。コンピュータは電子の動きでオンとオフを表現できてしまうのでそのオンオフで膨大な数の文字列を使った命令でも秒で終わらせてしまう事ができるのです。これについていくことは不可能なので何をしているのかゆっくりでもいいので理解する事が大事だと思います。

yarn

yarnはfacebookが開発したパッケージ管理ソフトです。これはnpmと互換性があり同じように使用できるのですが、npmに対して大きな優位点があります。それはyarnはデフォルトでyarn.lockというパッケージのバージョンを管理するファイルを作成するという点と、プログラムを並列で読み込む事ができるという点です。特に後者の並列で読み込む事ができるという点はパッケージを読み込む速度が早くなるので大きな優位点です。yarn installでpackage.jsonに記載された依存オブジェクトのみを順番にインストールしていきます。

パッケージとは

プロジェクトそのものを指します。多くのプロジェクトはこのパッケージを組み合わせて作られており、その組み合わせるパッケージもまた膨大な数のパッケージを組み合わせて作られています。なので自分が作成している簡単なプロジェクトでも400MBを超える量のコードになっており、4億文字の文字列で作られていることになるのです。

npmとは

yarnと同じパッケージを管理するプログラムです。これを導入することによってパッケージを手動で管理する必要がなくなり、簡単なコマンドを打つだけで導入したパッケージに記述してあるプログラムを実行する事ができます。このパッケージ管理システムのおかげで便利なアプリケーションができているのです。npmにとってのパッケージはpackage.jsonファイルの親ディレクトリに含まれるファイル郡のことを指し、これらのファイルの中でnpmのコマンドを使うことによってパッケージの中のプログラムを実行して違うファイルでそのプログラムを実行して簡単にプログラムを組む事ができるようになります。npmではnpm installコマンドを実行して実行したディレクトリにpackage-lock.jsonがない場合にはpackage.jsonに記述してあるパッケージをダウンロードし、package-lock.jsonファイルがある場合にはその中に書いてあるパッケージをダウンロードします。プロジェクトを後悔する際にはパッケージをダウンロードした状態でgithubにコードをあげることはなく、そのパッケージのバージョン情報を記述したファイル郡のみをgithub上に上げ、そのアプリケーションを実行する際にnpm installなりyarn installでパッケージをダウンロードするようにします。なぜこのようにするのかというと、そのほうがファイルのサイズが小さくて済むという点と、もしバージョン違いなどでうまく動かなくなってしまった場合にそのバージョンを記述しているファイルのみを変更するだけで済むからです。

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

テックキャンプのメンバーと

今日はテックキャンプのメンバーとご飯を食べに行ったのでその話と読んだ本の話をします。 生命とは  生物学者の福澤伸一さんとエッセイストの阿川佐和子さんの対談する本で生物がエントロピー増大の法則に抗って …

no image

Redux

storeでデータを管理してどのコンポーネントからでもデータを受け取れる仕組みです。storeはアプリケーションで一つだけ持つことができ、その中で一つのstateを持っています。その中のstateを直 …

no image

PR

機能を実装する際にプルリクエスト言って書いたコードが正しいか第三者に判断してもらうのですが、その際に指摘を受けた箇所を直してまたリクエストを出して、指摘が無くなったら本番のコードに書いたコードをマージ …

no image

読字力

 今日から「デジタルで読む本✖️紙の本で読む本」を読み始めました。どんな内容かというと、デジタル化が進む中で読解力はこの先変化があるか?という内容です。デジタル化が進み、情 …

no image

今週終わり

今週から会社が始まりあっという間に一週間画過ぎてしまいました。詰め込み過ぎて入社から1年くらい経過した気がするのですがまだ一週間ということなので驚きました。頑張りたいと思います。 git vsコードか …

PREV
typescript
NEXT
初担当