Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
M3社内ツールのフロントエンド開発環境の改善#m3dev
Search
sanata0130
May 23, 2017
Programming
170
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
M3社内ツールのフロントエンド開発環境の改善#m3dev
sanata0130
May 23, 2017
Other Decks in Programming
See All in Programming
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
130
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
550
信頼性の目標を誰も求めてない
shubox
0
500
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
670
アクセシビリティから考える情報設計
high_g_engineer
0
360
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
200
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
440
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
600
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
140
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
150
Heart of Swift Concurrency
koher
0
240
What We Talk About When We Talk About XP
m_seki
2
490
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
450
Between Models and Reality
mayunak
4
450
The World Runs on Bad Software
bkeepers
PRO
72
12k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.2k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
Faster Mobile Websites
deanohume
310
32k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Agile that works and the tools we love
rasmusluckow
331
22k
The Curse of the Amulet
leimatthew05
2
14k
Transcript
M3 社内ツールの フロントエンド開発環境の改善 2017.5.19 阿部早苗(M3, Inc)
社内ツールの紹介 プロデューサー&ディレクター向けのツール。 フォームに入力していくと、コーダーへの作業依頼に必要な情報をまとめることができ る。
これまでの開発環境 2014年〜2017年4月
主な問題点 1. プロジェクト管理がしづらい ◦ パッケージが Bower と NPM の二重管理になっている ◦
ドットファイルが散在している 2. タスクランナーの管理が大変 ◦ 更新が途絶える Grunt プラグイン ◦ Gruntfile.js が複雑化、デバッグがしづらい 3. Sass などの代替言語が衰退しつつある ◦ 独自構文から次世代の標準構文でのコーディングに移り変わってきた 4. 運用工数がかかる ◦ JSのフレームワークを入れたい
新しい開発環境 2017年4月〜
主な改善点 1. パッケージ、タスク、各種ツールの設定を package.json で一元管理 ◦ プロジェクトの管理、環境構築が容易に 2. ビルドを Grunt
から Webpack へ移行 ◦ 依存関係を解消ながら、シンプルなビルドを可能に 3. Sass から PostCSS へ移行、Babel の導入 ◦ 次世代の標準構文でコーディングが可能に 4. Vue.js の導入 ◦ 開発&運用の工数を削減
パッケージ、タスク、各種ツールの設定を 1. package.json で一元管理 • タスクを Grunt から package.json の
scripts に移行。yarn で実行できるように。 ドットファイル も少なく • Babel, ESLint, StyleLint 等のツールの設定を packge.json にまとめた。 • フロントエンドのパッケージ管理を Bower から Yarn に変更。 (Yarn:NPM に互換性のあるパッケージマネージャ) yarn install yarn build yarn start gem install sass npm install -g bower npm install -g grunt-cli npm install bower install grunt 環境構築が3行&約1分に
2. ビルドを Grunt から Webpack へ移行 1. 依存しているモジュールや CSS を
JS 内で import。 2. JS と CSS を分離。 3. JS と CSS をそれぞれ別のツールでビルド、バンドルファ イルを作成。 main.js Webpack:依存関係を解消するビルドツール。 Grunt の複雑なタスク定義、 プラグインの不具合から逃れ、 ビルドがシンプルに webpack.config.js
3. Sass から PostCSS へ移行, Babel の導入 ★次世代の標準構文でコーディングするメリット ・コードがツールに依存しない ・ブラウザのサポートが追いついたらそのまま移行できる
・新技術のキャッチアップに役立つ PostCSS… プラグインを使ってスタイルを変換するツール。次世代の CSS 標準構文をブラウザでサポートされている構文 に変換できる CSSNext プラグインが有名。 - Ruby Sass の30倍処理が早い - Sass のように全部入りではなく、必要な機能だけをプラグインで拡張できる Babel… 次世代の JS の標準機能を、ES5 に変換できるツール
4. Vue.js の導入 Input Output Vue.jsを使えば たったこれだけで、 ユーザの入力内容が 反映される Vue.js:UI
を構築するための JS フレームワーク。 今回、複雑ことはしていないが v-model ディレクティブがとても役立った。 テンプレートファイル作って、コ ンパイルして、他のJSと一緒に バンドルして、ユーザの入力内 容を取得して、JSONにして、 Handlebarsに渡して… 複雑化していたJS
今回、社内ツールの開発環境を以下の方法で改善しました。 1. パッケージ、タスク、各種ツールの設定を package.json で一元管理 ➡ プロジェクトの管理、環境構築が容易に 2. ビルドを Grunt
から Webpack へ移行 ➡ 依存関係を解消ながら、シンプルなビルドを可能に 3. Sass から PostCSS へ移行、Babel の導入 ➡ 次世代の標準構文でコーディングが可能に 4. Vue.js の導入 ➡ 開発&運用の工数を削減 知らなかったツールや効率化手法があったら使ってみてください。 もっと良い方法があったら教えてください。 まとめ
参考ページ https://github.com/hail2u/hail2u.net https://github.com/mizchi/frontend-boilerplate