Sass のコンパイルや JavaScript の minify などは、VS Code(私的メインエディタ) の機能拡張に任せて、EJS だけ npm-scripts に監視しさせる開発環境構築メモ。Node.js はインストール済み。
必要パッケージのインストール
- rimraf: 書き出しディレクトリのクリーン
watch: .ejs の変更を監視- chokidar-cli: .ejs の変更を監視
- ejs-cli: .ejs を .html に変換
// npm i -D rimraf watch ejs-cli
npm i -D rimraf chokidar-cli ejs-cli
※読み方が分からないが chokidar-cli の方が watch より 反応が良い気がしたので変更@200406
ディレクトリ構造
数ページの会社案内のようなサイトを作るとして、dist ディレクトリに何から何まで書き出すと想定。
dist
├ assets // css や js が書き出される
├ summary
│ └ index.html
└ index.hmlt
node_modules
src
├ assets // sass や js を保存(ここは VS Code に任せる)
├ summary
│ └ index.ejs
├ _footer.ejs
├ _header.ejs
└ index.ejs
package.json
npm-scripts
「dist」ディレクトリの .html は必ず .ejs から変換。
// "ejs": "rimraf dist/**/*.html && ejs-cli -b src **/!(_)*.ejs -o dist",
"ejs": "rimraf \"dist/**/*.html\" && ejs-cli -b src \"**/!(_)*.ejs\" -o dist",
// "watch/ejs": "watch \"npm run ejs\" src -p /assets/"
"watch/ejs": "chokidar \"src/**/*.ejs\" -c \"npm run ejs\""
※watch が実行するコマンドは、Windows の場合、ダブルクォーテーションで囲まないとエラーになった。
※watch は、「-p」の後に正規表現で除外を設定するけど、chokidar は監視を絞り込む感じ。
※Mac で rimraf, ejs-cli の対象をダブルクォーテーションで囲まないとエラーになった@200407