Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pug + SCSS + webpackの静的サイト構築環境を考える / LTイベント@クックパッド OthloEvent#44

Pug + SCSS + webpackの静的サイト構築環境を考える / LTイベント@クックパッド OthloEvent#44

Naoki Ikeguchi

March 07, 2019
Tweet

More Decks by Naoki Ikeguchi

Other Decks in Programming

Transcript

  1. Siketyan って誰? • 豊田高専生 (情報工学科 1年) • C# + WPF

    で GUI を書く • C# + ASP.NET Core で API バックエンドを書く • Java や PHP も書く • JetBrains 信者 • Vim と Sublime Text を使う • 2~4スペースインデント派 • よろしくおねがいします Twitter: @siketyan
  2. Node.js でのWebサイト開発あるある • SCSS での @import や JS での require

    便利がち • とりあえず npm install / yarn add でなんとかなりがち • Node.js がサーバになるのでリバースプロキシしがち サーバは既存のものを使いたいので静的ページを生成したい でもヘッダやフッタは統合したいし @import とか使いたい 静的サイトでも Node.js で開発したい!
  3. • 記法がとにかくシンプルな 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) を使おう
  4. • CSS プリプロセッサ • @import で npm のパッケージからインポートできる (要 node-sass-package-importer)

    • 属性の入れ子ができる • {} を使わずインデントで表記する SASS も存在する • でもコンパイラは node-sass • CSS と互換性がある (CSS の拡張である) @import "~bootstrap" body { padding: 1rem; .container { &.main { margin: 1rem; } } } SCSS を使おう
  5. • npm パッケージから JavaScript (ECMAScript) の モジュールをインポートできる • ぜんぶまとめて一つの .js

    ファイルに出力できる const $ = require("jquery"); // or import jquery webpack を使おう
  6. • 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 を使おう
  7. ぼくの考える最強の静的サイト構築環境 • Node.js • Yarn • Gulp.js • Pug •

    SCSS • webpack ほかにいい方法があったら教えてください!