Googleのwireitでnpm runを超高速に実行する方法🚀

マフィア先生のエンジニア塾
28 Feb 202407:57

Summary

TLDRこの動画では、NPMスクリプトの実行速度を上げるためのライブラリー「ワイアー」について解説しています。ワイアーを使うことで、NPMスクリプトのキャッシュ機能が利用でき、2回目以降の実行が高速になります。実際にサンプルプロジェクトで試してみると、ビルド時間が4秒から0.1秒と劇的に短縮されたことが紹介されています。ワイアーは簡単に設定できるため、NPMスクリプトの実行効率化に役立つライブラリーだと解説しています。

Takeaways

  • 😃 ワイヤライブラリーを使うとNPMスクリプトの実行を高速化できる
  • 👍 パッケージJSONのビルドコマンドをワイヤ設定に変更することで高速化できる
  • 🔨 ワイヤの設定方法は簡単で、hpm i -D wireitでインストール後設定ファイルを作成
  • ✨ ワイヤはキャッシュ機能があるため、2回目以降のビルド時間が劇的に短縮される
  • 📈 実例で4秒かかっていたビルドが0.1秒で完了するなど、実行速度が格段に向上
  • 💡 ワイヤ設定では並列処理数を変更でき、デフォルトは1CPUコアにつき2つのスクリプトまで実行
  • 📝 ソースファイルやビルド結果をファイル設定しておくことで、変更検知とキャッシュが効果的
  • 🔎 ワイヤのキャッシュ機能により、変更のない部分のビルドがスキップされる
  • ⏳ 複数のNPMスクリプトを実行する際、全体の所要時間を大幅に短縮できる
  • 👍👍 NPMLANやビルドコマンドの実行速度改善にワイヤライブラリーが有効

Q & A

  • このビデオで紹介されているGoogleのライブラリーの名前は何ですか?

    -ワイアット

  • ワイアットの主な機能は何ですか?

    -NPMスクリプトをより高速に流せるようにすること

  • ワイアットを導入することでどのコマンドが劇的に早くなりますか?

    -NPMLANコマンド

  • ワイアットを使用するためのインストールコマンドは何ですか?

    -NPMのhphDのWi

  • ワイアットを導入した後のパッケージ.JSONの変更点は何ですか?

    -ビルド時にTSCを流す設定からワイアと設定することへの変更

  • ワイアット導入後のビルドコマンドはどう変わりますか?

    -元々あったコマンドをワイアITのビルドコマンドに設定する

  • ワイアットを使うことの利点は何ですか?

    -実行結果をキャッシュしてくれるようになり、再ビルド時の速度を上げることができる

  • ワイアットで高速化したいスクリプトの設定方法は?

    -スクリプトにワイアと設定し、Yと書き換える

  • ワイアット導入によるビルド時間の変化はどのように確認できますか?

    -3JSのプロジェクトでビルドコマンドを流す前後で時間を比較する

  • ワイアット導入後にビルドが速くならなかった場合の対処法は?

    -ファイルズを設定し、ソースファイルとアウトプットディレクトリーを指定する

Outlines

00:00

🚀 Googleのライブラリー「Wyatt」の紹介

このパートでは、Googleのライブラリー「Wyatt」について紹介されています。Wyattは、NPMスクリプトをより速く実行できるようにするライブラリーで、NPMパッケージと共に使用されます。導入することで、NPMランコマンドの実行速度が劇的に向上します。Wyattの使用方法について説明され、インストール方法からパッケージ.JSONの設定変更、具体的なコードの書き方までが詳しく説明されています。Wyattを利用することで、ビルドコマンドの実行結果をキャッシュして再利用することが可能になり、依存関係の設定や、CI環境での使用方法なども紹介されています。また、実際にWyattを導入することでどれだけビルド時間が短縮されるか、3JSプロジェクトを例にして紹介されています。

05:00

⏱ Wyattのパフォーマンス実証と活用方法

このセクションでは、Wyattのパフォーマンスを実際に示すデモンストレーションが行われ、ビルド時間が0.1秒まで短縮されることが実証されました。ソースコードに変更があった場合とない場合のビルドの挙動が説明され、Wyattがビルドをキャッシュして効率的に処理する様子が示されています。さらに、ビルドプロセスを並行して実行する方法と、そのための環境設定についても触れられています。最後に、Wyattを導入することの利点として、NPMスクリプトの実行時間の短縮が挙げられ、視聴者に対してWyattの使用を推奨しています。また、動画の終わりには、作者が提供するWEB制作や開発に関するコース、ハイレベルなスキルを学びたい人向けのサービス「ノトイコール」、プログラミングの学習支援のためのオンラインコミュニティ「コードトゲザー」についての紹介があります。

Mindmap

Keywords

💡NPM

Node.js用のパッケージマネージャー。JavaScriptのライブラリやツールをインストール・管理できる。

💡スクリプト

プログラムのコード。動画ではNPMスクリプトのことを指す。タスクランナーとして利用される。

💡ライブラリー

再利用可能なコードの集まり。動画ではWyattというライブラリーを紹介している。

💡ビルド

ソースコードから実行可能なプログラムを生成する処理。動画ではビルド時間の短縮をテーマにしている。

💡キャッシュ

データを一時的に保管する領域。Wyattは以前のビルド結果をキャッシュすることで高速化を実現している。

💡並行実行

複数の処理を同時に実行すること。Wyattは並行実行に対応し、速度向上に役立てている。

💡コア

CPU内の演算処理を担う部分。Wyattは1コアにつきスクリプト2つまで並行実行できると説明されている。

💡依存関係

他のライブラリやコンポーネントが必要なこと。Wyattでタスクの順序づけができる。

💡トランスパイル

コードを別の形式に変換すること。動画ではTypeScriptがJavaScriptに変換される例が出ている。

💡プログラミング力

プログラミングに関する知識と技術のレベル。動画の最後にJavaScriptの学習用教材が紹介されている。

Highlights

Googleのライブラリーのワイアットについて紹介

NPMスクリプトをより高速に流せるようにしてくれる

ビルドのコマンドにワイアと設定しキャッシュして高速化

実際にNPMビルドコマンドをワイアに変更し高速化を確認

ソース変更時はキャッシュ利用でビルドスキップできる

Transcripts

play00:03

[音楽]

play00:06

はいえ皆さんこんにちはこのマフィアです

play00:08

ということでま今回はですねGoogle

play00:09

のライブラリーのワイアットについて紹介

play00:11

したいと思いますまこちらですね何する

play00:13

ものかと言いますとNPMスクリプトを

play00:15

より高速に流せるようにしてくれる

play00:17

ライブラリーになってきますまえNPM

play00:19

パッケージと一緒に使うんですけれどもま

play00:22

これ導入することでえま劇的にですね

play00:25

NPMLANコマンドが早くなるんでえま

play00:28

その使い方について簡単に見ていきたいと

play00:30

思いますでえ書き方なんですけれどもま

play00:33

ちょっとバーっとありますがえまず使い方

play00:35

としましてはNPMのhphDのWiとま

play00:39

これでインストールを行ってでえ

play00:41

パッケージ.JSONの中身をまこんな

play00:43

感じで書き換えてくださいとなっています

play00:46

でえこちら左側が元のコードになりまして

play00:49

まこのビルドした時にTSCを流すとでえ

play00:52

右側のアフターのところがまこれがワイヤ

play00:55

導入した感じでまビルドのところにえ

play00:57

ワイヤとえ設定しましてでで元々あった

play01:01

コマンドはえこのワイヤITのビルドの

play01:03

コマンドの中にまこのようにして設定する

play01:06

とまこうすることによってえま実行結果を

play01:08

キャッシュなんかしてくれるようになり

play01:10

ますはいではえ実際にどんな感じで書くの

play01:13

か見ていきましょうまこちらあらかじめ

play01:15

ですね私の方で記述したものがあるんです

play01:17

けれどもまこちらえスクリプトにはえ

play01:20

ビルドのコマンド準備していましてえそこ

play01:22

にワアと設定していますでえこのコマンド

play01:26

が流れるとえこちらのワイヤITのビルド

play01:29

の方が流れるということですねまこちらの

play01:31

コマンド流れましてえでエコーで10が

play01:33

表示されるという風になっていますではえ

play01:37

実際に実行してみましょうまこちらビルド

play01:40

を流しますまそうするとえこんな感じでえ

play01:43

10と表示されてるんで実行されますとで

play01:46

えこちらのワイアなんですけれどもま依存

play01:48

関係を設定することなんかもできましてま

play01:51

例えばですがえこちらCIとしてNPMの

play01:54

えCIでまえクリーンインストールして

play01:57

からビルドするようにしてみますでえこの

play02:00

場合にはえこちらCIのコマンド追加し

play02:02

ましたんでえこれちょっとコピーしとき

play02:05

ましてワイアITの方にもえCIを追加

play02:08

するとこちらNPMCをこのコマンドの方

play02:11

に書かないといけないですねはいまこんな

play02:14

感じで書きましてでスクリプトの方は

play02:16

ワイア1にするとまなんでこれスクリプト

play02:19

全てをですねワイア1にする必要はなくて

play02:21

まこのワイア1を使って高速化したい

play02:24

スクリプトだけまこのようにYとえ

play02:26

書き換えれば大丈夫ですではえこれでCと

play02:29

長ばえこちらの試合コマンド流れますんで

play02:32

まこれを依存関係に追加しますまえこちら

play02:35

え依存関係としてディペンデンシーまこれ

play02:38

にえCIを追加しましょうまこのように

play02:42

書くとですねワイアITのえCIコマンド

play02:44

ますなわちこれですねまこれが実行されて

play02:47

からえメインのコマンドが実行されるよう

play02:49

になりますではこれでえNPMのラン

play02:52

ビルドとして流すとまこんな感じでえCI

play02:56

がえ走ってることが確認できますはいま

play02:59

こんな感じでですね事前に流したい

play03:01

コマンドを登録することもできますでは

play03:03

ですねえ実際にえどんだけ早くなるかと

play03:06

いうのをえ実際のプロジェクトで見てみ

play03:09

たいと思いますまこちら3JSのえ

play03:11

プロジェクトになってくるんですけれども

play03:13

え例えばこのプロジェクトでですねま

play03:15

ビルドコマンドなんかを流すとま大体4秒

play03:19

ぐらいかかるんですねまこれえ

play03:22

940mセとえ2.4とえ5mmセックな

play03:26

んでま大体4秒ぐらいですねまえ時間が

play03:29

かかるですけれどもえこれワイヤ1にえ

play03:32

書き換えてみたいと思いますではえ

play03:34

パッケージ.jonのえビルドコマンドな

play03:37

んでえこちらですねまこちらのコマンドを

play03:40

えワイヤーITに書き換えるとではえ

play03:43

こちらワイヤーITとトとしましてでえ

play03:48

ちょっと貼り付けておきますえコマンドの

play03:52

中にえ先ほどのコマンド準備しましてま

play03:56

これはこんな感じですかねでえこちらの上

play03:59

の4のビルドコマンドはえワイヤITに

play04:02

変更しておきますはいワイヤITとでえあ

play04:06

はですねNPMのiのハDのワイヤITで

play04:11

えインストールしておきますまこれで

play04:13

書き換えは完了ですかねではえこれでです

play04:16

ね実行してみましょうNPMRanビルド

play04:19

とまちなみに1回目のビルドはですね

play04:22

そんなに速度変わらないですねまこれ並行

play04:25

して実行することもできるんですけれども

play04:27

ま並行してえ実行しなかった場合にはそれ

play04:29

ほど速度変わりませんはいということでえ

play04:33

実行してみるとえ速度変わってないですが

play04:36

そうですねこれはえファイルズまこれ出力

play04:39

する先のファイルなんかをえま設定として

play04:42

加えないといけないですねまなんでえ

play04:44

こちらファイルズとしましてえソースのえ

play04:48

3JSまこれ元になるファイルですねをえ

play04:51

設定しておきますでえアウトプットの方も

play04:55

設定した方がいいですねアウトプットとえ

play04:58

アウト

play05:00

Tが抜けてますねでえアウトプットはえ

play05:03

ビルドディレクトリーですねまこれでえ

play05:06

大丈夫かと思いますではえこれで実行し

play05:09

ますとえ今瞬殺で終わりましたねはい

play05:12

0.1秒で終わりましたねもう1回やって

play05:14

みましょうかもう1回流してもえ0.1秒

play05:18

で終わるとでえもしソースコードがえ変更

play05:21

されていた場合にはま例えばですがこちら

play05:25

えコンソールログとしてえま適当にハロー

play05:28

と表示するようにしてきましょうかハロー

play05:30

とまこんな感じで表示するようにしておい

play05:33

てえであとはえビルド流してみるとま再び

play05:37

えこのビルドが走るようになりますはいで

play05:40

えこちらですねままたバとして軸をすると

play05:43

ですねまたまビルドが走るんですけれども

play05:45

まこれすごいなと思うのがま1回ですねえ

play05:48

キャッシュしたものに関してはえビルドを

play05:50

スキップしてくれますま例えば先ほど

play05:52

ハローで1回ジクをしたんでまこの

play05:55

キャッシュというのは残ってるんです

play05:56

けれどもまこの状態でえビルドをかけると

play05:59

もうこののキャッシュを使うようになっ

play06:00

てるんでまこちらえビルドが省略されてえ

play06:03

0.1秒で処理が完了しますまなのでえ

play06:06

こんな感じでですね1回ビルドしたものに

play06:08

関してはえま再びえビルドの行動を流さ

play06:11

ないとまそういった処理が入っていること

play06:13

になりますはいでえこちらですねy1と

play06:16

並行して実行するという風にお伝えしたん

play06:18

ですけれどもま基本的にはですねえこの1

play06:21

つのCPUのコアに対して2つの

play06:23

スクリプトまでえ並行して実行すると書い

play06:26

てありますでもしえこの並行の数を変えた

play06:29

場合にはえこちらのワイヤITパラレルと

play06:32

いう環境変数の値を変更してくださいとま

play06:35

これでえ変わりますよと書いてあります

play06:38

はいということでえまこれがワイヤ1と

play06:40

いうものになるんですがいかがでしょうか

play06:42

まなかなかですねNPMスクリプトて流す

play06:45

機会多いんで時間かかったりするんです

play06:47

けれどもまえこちら興味のある方ですね

play06:49

ワイヤ導入してえスクリプトの時間短縮に

play06:52

務めてみてくださいはいということでえ

play06:54

今回の動画はここまでになりますそれでは

play06:57

また次の動画でお会いしましょうバイバイ

play07:01

今回もご視聴いただきありがとうござい

play07:03

ます私はえユミでWEB制作からWeb

play07:06

開発まで幅広いコースを出していますので

play07:09

興味のある方は是非概要欄からご覧

play07:11

くださいまたさらにハイレベルなWEB

play07:14

制作スキルを学びたい人向けにノト

play07:17

イコールというサービスを運営しています

play07:19

ので興味のある方はそちらも合わせて概要

play07:21

欄の方でチェックしてみてください最後に

play07:24

プログラミングの学習が1人で寂しい方は

play07:27

無料のオンラインコミュニティコード

play07:29

トゲザーを運営していますのでそちらも

play07:31

概要欄から是非チェックしてみてください

play07:34

それではご視聴ありがとうございました

play07:36

javascriptの独学に最適な標準

play07:39

教科書様々なサンプルプログラムを例示し

play07:43

あなたのプログラミング力の上達を

play07:44

サポートし

play07:55

ます

Rate This

5.0 / 5 (0 votes)

Вам нужно краткое изложение на английском?