Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
pitch loaderについて
Search
rchaser53
March 09, 2018
Programming
1
500
pitch loaderについて
rchaser53
March 09, 2018
Tweet
Share
More Decks by rchaser53
See All by rchaser53
LLVM IR入門
rchaser53
4
2.6k
Rustからwasmを生成してみた話
rchaser53
1
740
Base64 VLQ概要
rchaser53
2
1.5k
sourcemap規格概要
rchaser53
1
1.1k
TypeScript+React入門
rchaser53
1
850
Other Decks in Programming
See All in Programming
実践ArchUnit ~実例による検証パターンの紹介~
ogiwarat
1
200
Zennの運営完全に理解した #完全に理解したTalk
wadayusuke
1
170
『Python → TypeScript』オンボーディング奮闘記
takumi_tatsuno
1
150
プロダクト改善のために新しいことを始める -useContextからの卒業、Zustandへ-
rebase_engineering
1
110
Devinで実践する!AIエージェントと協働する開発組織の作り方
masahiro_nishimi
6
2.8k
PT AI без купюр
v0lka
0
210
OpenNext + Hono on Cloudflare でイマドキWeb開発スタックを実現する
rokuosan
0
110
❄️ tmux-nixの実装を通して学ぶNixOSモジュール
momeemt
1
150
型付け力を強化するための Hoogle のすゝめ / Boosting Your Type Mastery with Hoogle
guvalif
1
250
「兵法」から見る質とスピード
ickx
0
240
Parallel::Pipesの紹介
skaji
2
890
データベースコネクションプール(DBCP)の変遷と理解
fujikawa8
0
190
Featured
See All Featured
Scaling GitHub
holman
459
140k
GraphQLとの向き合い方2022年版
quramy
46
14k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Facilitating Awesome Meetings
lara
54
6.4k
Code Reviewing Like a Champion
maltzj
524
40k
4 Signs Your Business is Dying
shpigford
183
22k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Six Lessons from altMBA
skipperchong
28
3.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Automating Front-end Workflow
addyosmani
1370
200k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Transcript
webpack のpitch loader について @rchaser53
webpack のpitch loader についてです cache-loader の調査中に気になったの調べました 自作、バグ修正の足がかりに役立てば幸いです
loader とは? いつものアレ(babel-loader とかcss-loader とか) module のソースコードを変換するもの 同期/ 非同期の両方に対応している loader
は任意のファイルを出力できる(file-loader とか)
loader の処理順 { test: '/.js$/', use: [ 'abc-loader', 'def-loader' ]
} 1. def-loader 2. abc-loader ではない正確にはpitch loader が先に実行される
pitch loader とは default loader の前に実行されるoptional なloader 値を返すとdefault loader まで処理が省略される
この時点ではまだソースは読み込まれていない
default loader の前に実行されるoptional なloader // webpack.config.js { test: '/.js$/', use:
[ 'abc-loader', 'def-loader' ] } 以下が正しい処理順 1. abc-loader -- pitch 2. def-loader -- pitch 3. (read the sources) 4. def-loader -- default 5. abc-loader -- default
default loader の前に実行されるoptional なloader dom のevent bubling からデザインされたもの
値を返すとdefault loader まで処理が省略される module.exports = { pitch: function() { //
値 返 default 処理 省略 // 返 値 String Buffer return 'something' // 非同期 // const callback = this.async(); // callback(null, 'something'); // return 何 返 (undefind) 次 loader 処理 移 } default: function(sources) { return sources[0] // Array 来 単純 return } }
値を返すとdefault loader まで処理が省略される 例1 abc-loader.pitch return "abc" def-loader.pitch ( 省略)
def-loader.loader ( 省略) abc-loader.loader ( 省略)
値を返すとdefault loader まで処理が省略される 例2 abc-loader pitch return def-loader pitch return
"somethingA" def-loader default ( 省略) abc-loader default return "somethingB"
値を返すとdefault loader まで処理が省略される 使用例 cache-loader 1. pitch loader でcache と依存ファイルのmtime
を比較 2. 差異がない場合はcache を読みこみreturn 3. defalult loader でそれまでの生成物と依存ファイルの path 、mtime からcache を作成
値を返すとdefault loader まで処理が省略される mtime … 最終変更時刻 (modify time) 最後にファイルを変更した時刻のこと 正確にはファイルにwrite(2)
、またはtruncate(2) した場合 に変更されるもの
この時点ではまだソースは読み込まれていない path は取得できるので取得はできる( 非推奨) loader-utils やschema-utils は使用できるのでoption など は取得できる 第3
引数経由で他のloader に値を渡すことはできる
この時点ではまだソースは読み込まれていない 正直cache-loader くらいしか第3 引数を使っている loader を見かけない cache の依存情報やfile がコンパイル中に変更されてい ないか確認するために使用している
そもそもpitch loader 自体ほとんど使われてない(script- loader, style-loader とか)
まとめ まとめ 使う機会はあるのか? webpack に対してはないかもしれない しかしフェイズを2 つに分けて、片方ではcache 管理な どを行うという設計の仕方は使えそう まぁその時楽しめれば良いよね
が作成できた! awesome-prettier-loader
参考リンク 公式ページ( かなり充実している) Documentation for pitch vs normal loader isn't
very clear UNIX/Linux の部屋 用語集: タイムスタンプ cache-loader
ご静聴ありがとうございました! ご静聴ありがとうございました!