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
Pug + SCSS + webpackの静的サイト構築環境を考える / LTイベント@クックパッド OthloEvent#44
Search
Naoki Ikeguchi
March 07, 2019
Programming
0
360
Pug + SCSS + webpackの静的サイト構築環境を考える / LTイベント@クックパッド OthloEvent#44
Naoki Ikeguchi
March 07, 2019
Tweet
Share
More Decks by Naoki Ikeguchi
See All by Naoki Ikeguchi
防衛的 PHP: 多様性を生き抜くための PHP 入門 / Defensive PHP
siketyan
2
830
リモートワークと健康 - ヤフー名古屋 Tech Meeting #2
siketyan
0
210
Actual of Japanese Internet
siketyan
3
4.8k
Rust でマイナンバーカードを操作するスマホアプリを作りたい話
siketyan
2
24k
文字ってなんだろう?身近だけど意外と知らない文字コードと絵文字の話 - 技育 CAMP 2021
siketyan
2
490
SPF と DKIM だけで大丈夫?本当は怖いドメイン名と E メール @ TwoGate Tech Meeting
siketyan
1
460
自作キーボードのすすめ / Recommendation of Original Keyboard
siketyan
0
520
人々はなぜ大文字・小文字を正しく使い分けないのか? / Why don't people use upper or lower case correctly?
siketyan
1
540
エディタ戦争? いいえ,エディタ vs IDE 戦争 / 学生LT in 名古屋
siketyan
1
740
Other Decks in Programming
See All in Programming
大規模UIKitベースアプリへのTCAの段階的導入/gradual-adoption-of-tca-in-a-large-scale-uikit-based-app
takehilo
2
200
PostmanでAPIの動作確認が楽になった話
h455h1
0
170
VS Code をプロダクトにどう取り込むか
onomax
1
630
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
240
Try creating your own orderedmap
kazamori
1
150
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
890
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
1
1.3k
雑に思考を整理する技術と効能
konifar
61
30k
使ってみよう Azure AI Document Intelligence
kosmosebi
2
350
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
160
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
670
Build Apps for iOS, Android & Desktop in 100% Kotlin With Compose Multiplatform (mDevCamp 2024)
zsmb
0
420
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Done Done
chrislema
178
15k
A better future with KSS
kneath
231
16k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
33
6k
Optimizing for Happiness
mojombo
370
69k
Typedesign – Prime Four
hannesfritz
36
2.1k
A designer walks into a library…
pauljervisheath
201
23k
Adopting Sorbet at Scale
ufuk
69
8.6k
Building Effective Engineering Teams - LeadDev
addyosmani
31
1.9k
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
Transcript
Pug + SCSS + webpack の 静的サイト構築環境 を考える Siketyan @
LTイベント@クックパッド OthloEvent#44
誰?
Siketyan って誰? • 豊田高専生 (情報工学科 1年) • C# + WPF
で GUI を書く • C# + ASP.NET Core で API バックエンドを書く • Java や PHP も書く • JetBrains 信者 • Vim と Sublime Text を使う • 2~4スペースインデント派 • よろしくおねがいします Twitter: @siketyan
Webサイトの構築 に何を使っていますか?
モダンなWebサイトの構築方法 • Node.js • Node.js • Node.js • Node.js •
Node.js • Node.js • Node.js • Node.js
Node.js
Node.js でのWebサイト開発あるある • SCSS での @import や JS での require
便利がち • とりあえず npm install / yarn add でなんとかなりがち • Node.js がサーバになるのでリバースプロキシしがち サーバは既存のものを使いたいので静的ページを生成したい でもヘッダやフッタは統合したいし @import とか使いたい 静的サイトでも Node.js で開発したい!
</> を書くのはやめにしませんか?
• 記法がとにかくシンプルな HTML プリプロセッサ • div を省略できる • レイアウトの継承などもできる •
すげーやつ • パグかわいい doctype html html(lang="ja") body main .container section.section#summary h1.title Summary h2.subtitle About me .summary-list article.media figure.media-left Pug (旧: Jade) を使おう
@import を使いたい (npm のパッケージからインポートしたい)
• CSS プリプロセッサ • @import で npm のパッケージからインポートできる (要 node-sass-package-importer)
• 属性の入れ子ができる • {} を使わずインデントで表記する SASS も存在する • でもコンパイラは node-sass • CSS と互換性がある (CSS の拡張である) @import "~bootstrap" body { padding: 1rem; .container { &.main { margin: 1rem; } } } SCSS を使おう
require() を使いたい (または import)
• npm パッケージから JavaScript (ECMAScript) の モジュールをインポートできる • ぜんぶまとめて一つの .js
ファイルに出力できる const $ = require("jquery"); // or import jquery webpack を使おう
ビルドがめんどい
• SCSS や webpack のビルドをまとめて管理できる (要 gulp-sass, webpack-stream) • gulpfile.js
を書くだけ • webpack をそのまま使うより設定が簡単 • バージョン4でいろいろ変わって混乱しがち const gulp = require("gulp"); gulp.task("scss", function () { return gulp.src("./src/scss/*.scss") .pipe(sass()) .pipe(gulp.dest("./dist/bundle.scss")); }); Gulp.js を使おう
まとめ
ぼくの考える最強の静的サイト構築環境 • Node.js • Yarn • Gulp.js • Pug •
SCSS • webpack ほかにいい方法があったら教えてください!
宣伝 今回紹介した環境で個人サイトを作り直しました https://siketyan.dev/ (ソース: https://github.com/Siketyan/siketyan.dev) 動きます
ご清聴ありがとうございました