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
Prettier 2.0
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
sosukesuzuki
February 05, 2020
Programming
2
1.7k
Prettier 2.0
https://ginzajs.connpass.com/event/162321/
の発表内容です
sosukesuzuki
February 05, 2020
Tweet
Share
More Decks by sosukesuzuki
See All by sosukesuzuki
JavaScriptにおけるasync/await呼び出しのスタックトレースの困難と実装
sosukesuzuki
12
7.7k
一人で大規模OSSに立ち向かうには
sosukesuzuki
21
12k
デザインシステムと生成AIの相性について考える
sosukesuzuki
4
1.5k
イテレータとイテラブルの概要と課題、未来
sosukesuzuki
5
3.8k
JavaScriptCoreのObject.groupBy/Map.groupByのバグを自分で報告して自分で直す
sosukesuzuki
1
670
「書いたJavaScriptがそのままブラウザで動く未来へ」スピーカーノート
sosukesuzuki
8
12k
Prettier 3.0 の VSCode 拡張対応における技術的な意思決定~VSCode 拡張で dynamic import が動かない~
sosukesuzuki
1
2.1k
ESM移行は無理だけどおれもSindreのライブラリが使いたい!
sosukesuzuki
2
1.3k
JavaScript エコシステムを維持する OSS の努力と課題
sosukesuzuki
14
9.9k
Other Decks in Programming
See All in Programming
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
230
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
4
240
Fragmented Architectures
denyspoltorak
0
140
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
420
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
160
AtCoder Conference 2025
shindannin
0
1k
Patterns of Patterns
denyspoltorak
0
1.4k
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.3k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
190
ThorVG Viewer In VS Code
nors
0
760
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.7k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
49k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Making Projects Easy
brettharned
120
6.6k
The Invisible Side of Design
smashingmag
302
51k
The Pragmatic Product Professional
lauravandoore
37
7.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
110
Done Done
chrislema
186
16k
Transcript
Prettier 2.0 ginza.js 2020/02/05
自己紹介 - 鈴木颯介(すずきそうすけ) - GitHub(@sosukesuzuki) - Twitter(@__sosukesuzuki) - Prettier -
筑波大学情報科学類
Prettier - JavaScript で書かれたコードフォーマッター - Node.js / ブラウザで動く - JS
/ TS / HTML / CSS / YAML / GraphQL などに 対応 - 現在 1.19.1(master) - 2.0 が開発中(next)
Prettier
注意 - 今日話す内容は、発表時点で next ブランチに実装されているものもしくはメンバー 内で合意がとれているもの - 今後の状況によっては変更される可能性がある
概要 - 全体的に変更は小さめ - デフォルトオプションの変更 - 影響の大きいフォーマットの変更 - Node 8
以下のサポート終了 - など
経緯 - 2018年頃から多くの破壊的変更を含む野心的な 2.0 が計画されていた - しかし実際にはいくつかの大きな変更を含む小さな 2.0 が開発されている
経緯 - 1.19 のときに、Node のバージョン周りで面倒だった - TypeScript 3.7 をサポートするためには、依存している @typescript-eslint/typescript-estree
の バージョンをあげる必要があったけど、 typescript-estree と Prettier でサポートしている Node の バージョンが違かった。
経緯 - 今まで Node 4 までサポートしていた - いくつかの構文は Babel を使って対応していたがトランスパイル後のサイズなどを
考えて使えなかった構文がある。 - 例えば class は使わずに function で書いていた。 - スプレッド構文も使えないので Object.assign がいっぱいある。
経緯 - 単純に EOL がきているバージョンをサポートし続けるのはきつい。
経緯 - 当初予定していた 2.0 の機能の多くを延期 - それらは 3.0 として将来的に実装される予定 -
Node 8 以下のドロップを最優先とした 2.0 の開発がはじまった! - https://github.com/prettier/prettier/issues/6888
Node 8 以下のドロップ - Node 8 以下(正確には10.13.0未満)のサポートを終了する
デフォルトオプションの変更 - trailingComma - endOfLine - arrowParens
デフォルトオプションの変更- trailingComma - trailincComma オプションには all・none・es5 の3つがある - all はつけられる箇所すべてに末尾カンマをつける
- none は全部つけない - es5 は ES5 でバリッドになるようにつける - 関数の引数リストの末尾カンマはつかない
デフォルトオプションの変更- trailingComma - https://github.com/prettier/prettier/pull/6963 - trailincComma オプションはデフォルトで es5 になる -
いままでは none だった - 基本的に末尾カンマがつく
デフォルトオプションの変更- endOfLine - https://github.com/prettier/prettier/pull/7435 - 改行コードを決める - endOfLine オプションがデフォルトで lf
になる - これまでは auto だった - (そのファイル内の他の改行コードに合わせ、もし混在している場合は、最初に使われている改行 コードで全部合わせる )
デフォルトオプションの変更- arrowParens - アロー関数の単一の引数にカッコをつけるかを決める - デフォルトで always になる - 今までは
avoid だった always(2.0からデフォルトになる) avoid(今のデフォルト) 引数にカッコをつける 引数にカッコをつけない
大きめのフォーマットの変更 - よく使われそうな構文のフォーマットが変わる
大きめのフォーマットの変更- 関数式の空白 - https://github.com/prettier/prettier/pull/3903 - Function Expression の function のあとに空白が入るようになる
- Function Declaration との統一のため Function Declaration Function Expression
大きめのフォーマットの変更- 関数式の空白 1.19.1 2.0
大きめのフォーマットの変更- 関数式の空白 - generator の * の扱いも少し変わるかもしれない - https://github.com/prettier/prettier/issues/7028 -
キーワードじゃなくて名前の方に * がつく - 現在議論中なので変更されるかも 1.19.1 2.0
リリース時期について - 2020年の2月2日を予定していたが、開発が間に合わず延期になっている - いまのところ未定だができるだけ早くリリースしたい
まとめ - デフォルトオプションの変更 - 影響の大きいフォーマットの変更 - Node 8 以下のサポート終了 -
その他細かな変更 - Babel のパーサーを使って TypeScript のフォーマットを行う `parser=babel-ts` - ファイルではなく、ESLint のようにディレクトリを指定できるようにする (WIP) - メソッドチェインのフォーマットの改善 - 多くのフォーマットのバグの修正 - リリース時期は未定だができるだけ早くやりたい