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
20170714_about_fusebox
Search
wakamsha
July 14, 2017
Technology
7.8k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20170714_about_fusebox
2017年7月14日 『Gotanda.js #8 in Nextbeat』にて発表した資料です。
https://gotandajs.connpass.com/event/57562/
wakamsha
July 14, 2017
More Decks by wakamsha
See All by wakamsha
Storybook 勉強会
wakamsha
0
250
フロントエンドリアーキテクチャリングと開発チームのスキルトランスファーにおける9ヶ月間の奮闘記
wakamsha
5
6.1k
Vite を使ってアプリケーションに環境変数を参照させる方法を考える
wakamsha
0
1.4k
小さくはじめる車輪の再発明のすゝめ
wakamsha
0
360
JavaScript ( 時々 TypeScript ) で ゆるやかにはじめる関数型プログラミング
wakamsha
6
3.2k
【codegen は難しくない】Swagger から JavaScript ( TypeScript ) コードを自動生成してコーディングを効率化しよう
wakamsha
4
3.6k
My name is WAKAMSHA - I’m a programmer / web frontend engineer.
wakamsha
1
2.3k
それ、もっとスマートに書けるよ - JavaScript コードをもっと短く、もっとシンプルに書く Tips 4選
wakamsha
9
14k
LP 制作フローを抜本的に改善した話
wakamsha
1
510
Other Decks in Technology
See All in Technology
AIに「使われる」時代のSaaS戦略 〜既存WebAPIのMCPサーバー化における開発ノウハウ〜
ekispert_api
0
300
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
760
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
290
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
AI時代における最適なQA組織の作り方
ymty
3
500
デジタル・デザイン構想 by Sayaka Ishizuka
y150saya
0
200
ADDF - ループエンジニアリングするフレームワークを作ったら/I Didn't Set Out to Build Loop Engineering, But ADDF Did
fruitriin
0
100
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
150
生成AI活用によるODC欠陥分析の分類高速化の実践と導入効果 / 20260703 Suguru Ishii
shift_evolve
PRO
2
120
AI Driven AI Governance
pict3
0
310
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
4.4k
CIで使うClaude
iwatatomoya
0
200
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
210
Test your architecture with Archunit
thirion
1
2.3k
So, you think you're a good person
axbom
PRO
2
2.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
How to train your dragon (web standard)
notwaldorf
97
6.7k
sira's awesome portfolio website redesign presentation
elsirapls
0
300
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
200
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
500
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
270
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Transcript
'VTF#PY ৽ਐؾӶͷ+BWB4DSJQU.PEVMF#VOEMFSΛࢼͯ͠Έͨ - Try outstanding JavaScript module bundler -
/BPLJ:"."%" !XBLBNTIB (PUBOEBKT
8IBU`T'VTF#PY - FuseBox ͬͯԿ ? -
8IBU`T'VTF#PY ଟػೳ͔ͭߴͳϞδϡʔϧόϯυϥʔ &4.PEVMFTʹඪ४ରԠ
8IBU`T'VTF#PY +BWB4DSJQU͚ͩͰͳ͘5ZQF4DSJQU .ts.tsx ʹσϑΥϧτͰରԠ 5ZQF4DSJQUίϯύΠϥ tsc ͑͋͞Εผ్ϓϥάΠϯෆཁ TS TSX
8IBU`T'VTF#PY ϩʔΧϧαʔόػೳΛσϑΥϧτͰࡌ ˞).3͋Γ ϓϥάΠϯՃͰ"MU$44ͷτϥϯεύΠϧɺը૾ͷ#BTFԽͳͲ͕Մೳ
#BTJD&YBNQMF ಈ͔ͯ͠ΈΑ͏
#BTJD&YBNQMF
#BTJD&YBNQMF • https://angular.io/tutorial w ϓϩμΫγϣϯίʔυ *.ts w ϑΝΠϧ14 w
ίʔυߦ388 w ґଘϥΠϒϥϦ w @angular/جຊతͳϠπ͍Ζ͍Ζ w SYKT w DPSFKT w [POFKT 5PVSPG)FSPFT"OHVMBS5VUPSJBM
const {FuseBox} = require('fuse-box'); const fuse = FuseBox.init({
hogeDir: 'src/scripts', output: 'public/assets/$name.js', sourceMaps: true, cache: true }); const app = fuse .bundle('bundle') .instructions(`> main.ts`); fuse.run(); project/bin/fuse.js
{ "name": "tutorials", "version": “1.0.0”, "scripts": { "bundle": "node ./bin/fuse”
}, "dependencies": { "@angular/common": "^4.2.6", "@angular/compiler": "^4.2.6", "@angular/core": "^4.2.6", "@angular/forms": "^4.2.6", "@angular/http": “^4.2.6", ⋮ "core-js": "^2.4.1", "rxjs": "^5.4.2", "zone.js": "^0.8.12" }, "devDependencies": { "fuse-box": "^2.2.0", "typescript": "2.3.4" } } package.json const {FuseBox} = require('fuse-box'); const fuse = FuseBox.init({ hogeDir: 'src/scripts', output: 'public/assets/$name.js', sourceMaps: true, cache: true }); const app = fuse .bundle('bundle') .instructions(`> main.ts`); fuse.run(); project/bin/fuse.js
FILE SIZE 3,477KB ELAPSED TIME 3.28s
$PNQBSFXJUIPUIFS.PEVMF#VOEMFST ଞͷϞδϡʔϧόϯυϥʔͱൺֱͯ͠ΈΑ͏
None
FILE SIZE 3,477KB ELAPSED TIME 3.28s FILE SIZE 3,064KB ELAPSED
TIME 11.86s FILE SIZE 3,522KB ELAPSED TIME 9.06s FILE SIZE 3,455KB ELAPSED TIME 7.58s
.JOJGZXJUI#"#&- $PNQSFTTFE .BOHMF
FILE SIZE 1,149KB FILE SIZE 977KB FILE SIZE 1067KB FILE
SIZE 1,170KB .JOJGZXJUI#"#&- $PNQSFTTFE .BOHMF
'VTF#PY`TJNQSFTTJPO w ѹతͳॲཧͦΕ͚ͩͰେ͖ͳັྗ w ଞϞδϡʔϧόϯυϥʔʹμϒϧείΞͷେࠩΛ͚͍ͯΔ w ࠷ॳ͔Β5ZQF4DSJQUʹରԠ͍ͯ͠Δͷخ͍͠ϙΠϯτ w "OHVMBS͚ͩͰͳ͘$ZDMFKTͳ͘όϯυϧग़དྷΔ w
ઃఆϑΝΠϧ fuse.js ͷॻ͖ํ͕γϯϓϧͰ͔Γ͍͢
'VTF#PY`TJNQSFTTJPO w 8FCQBDLಉ༷ଟػೳΛചΓʹ͍ͯ͠Δ͕ɺݸਓతʹ+4όϯυϧͷΈͷ༻్ Ͱ͍͍ͨ w ϩʔΧϧαʔό$44ͷόϯυϧผʹ༻ҙ͢ΕࡁΉ
'VTF#PY`TJNQSFTTJPO w ຊ3PMMVQKTͷΑ͏ͳ୯ػೳಛԽܕ͕Έͳͷ͕ͩɺ$ZDMFKTͩͱਖ਼ৗʹ όϯυϧ͞Εͳ͍ͷ͕ඇৗʹ೦ʜ w ຊདྷඞཁͳͷʹෆཁͱஅ͞Εͯ5SFF4IBLJOH͞ΕͯΔ͕ؔ͋Δͷ͔ʜʁ w *TTVFʹڍ͕͍ͬͯΔ͕ະͩղܾ͞Ε͓ͯΒͣ w ॲཧଞΑΓ͍ͷ͕ؾʹͳΔ
˞όϯυϧॲཧࣗମ௨Γ·͢
*OUSPEVDFNZTFMG Զͷ໊ΛݴͬͯΈΖ ࣗݾհ
גࣜձࣾϦΫϧʔτϚʔέςΟϯάύʔτφʔζ XFCϑϩϯτΤϯυΤϯδχΞ ࢁా थ /BPLJ:"."%" *OUSPEVDFNZTFMG !XBLBNTIB
https://tech.recruit-mp.co.jp NET BIZ DIV. TECH BLOG
None
https://tech.recruit-mp.co.jp 3.1 ϒϩά
5IBOLZPV