目的
保守性・品質高く案件を進めるためにプロジェクトの構成をコーディングセットとしてまとめました。どのファイルがどんな役割でどこに配置されているかを知りましょう。
ディレクトリ構造
[project]
├ [dist] --------------------:デプロイ用のフォルダです。構造は基本的に開発用フォルダと一緒です。
│ ├ index.html ------------:トップページをマークアップするファイルです。複数ページがある場合は適宜htmlファイルを追加していきます。
│ │
│ ├ [images] --------------:画像を格納するフォルダです。
│ │
│ ├ [css]
│ │ └ style.css ---------:scssファイルからコンパイルされminify処理されたcssファイルが格納されます。
│ │
│ └ [js] ------------------:LPとHPでは下記構造は変わることがあります。
│ └ index.js -----------:各ページで読み込むjsファイルがビルドされます。
│
├ [src] ---------------------:開発用のフォルダです。
│ ├ index.html ------------:トップページをマークアップするファイルです。複数ページがある場合は適宜htmlファイルを追加していきます。
│ │
│ └ [assets]
│ │
│ ├ [images] ----------:画像を格納するフォルダです。
│ │
│ ├ [styles]
│ │ └ [scss] -------:scssファイルが格納されています。
│ │
│ └ [js]
│ ├ main.js -------:各ページで読み込むjsファイルを作成します。
│ ├ [utils] -------:共通で使用する独自関数等を記述するファイルです。
│ └ [modules] -----:モジュールを格納するフォルダです。
│
├ .gitignore ----------------:githubにあげないファイルを記述します。特に触る必要はありません。
├ .babel.config.js ----------:babelの設定ファイルです。
├ jsconfig.json -------------:プロジェクトがJavaScriptプロジェクトであることを知らせるファイルです。パスの設定などできます。。
├ .eslintrc -----------------:eslintの設定ファイルです。
├ postcss.config.js ---------:postcssの設定ファイルです。
├ webpack.common.js ---------:webpackの基本設定ファイルです。
├ webpack.dev.js ------------:webpackの開発用設定ファイルです。
├ webpack.prod.js -----------:webpackの商用設定ファイルです。
├ package.json --------------:パッケージの情報が記述してあるファイルです。
└ yarn.lock -----------------:yarnがパッケージ情報を記述するファイルです。(触る必要なし)
各ファイル・フォルダの説明と設定(作成中)
前提
上記で提示したディレクトリ構造はあくまでプロジェクトの基本構造です。ここから用途や目的に合わせて適宜変更をしていきます。
imageフォルダ
ここには全ての画像が入ります。画像の命名規則はキャメルケースで記述します。下記が例です。
#推奨
topHeaderImg.png
footerLogo.png
spTopLogo.svg
#非推奨
top-header-img.png
footer-logo.png
sp-top-log.svg
また、imagesフォルダ内のフォルダ分けも適宜行います。下記は例です。
images
│
├ [sp]
│ ├ [about]
│ └ [hero]
│
├ [pc]
│ ├ [about]
│ └ [hero]
│
├ [favicon]
└ [logo]
モジュールバンドラー(Webpack5)について(2022/06/29現在)
これから使うコーディングセットではWebpackというビルドツールを使用して、コーディングを進めていきます。
バンドルとは
モジュール単位で書いたファイルを1つのjsファイルにまとめることです。
1つにまとめることでサーバーへのリクエスト数を減らすことができ、ページの表示速度の改善が期待できます。
なぜWebpackなのか
モジュール単位で開発ができるようになったES6からは、モジュールの依存関係を考慮しつつ開発を進めなければなりません。
そこでバンドルする際にモジュール同士の依存関係を解消してくれるWebpackを使用します。
「モジュール?」「バンドル?」と言われてピンとこない人はこちらの記事 (opens in a new tab)を見てみてください
命名規則
共通
ファイル名が長くなる場合にはキャメルケースで記述。
JavaScriptファイル
ファイル名はhtmlファイルと同じ命名にしてください。
モジュールは先頭を_
で始めてください。
#推奨(キャメルケース、ローワーキャメルケース)
testFile.html
index.html
index.js
_module.js
#非推奨
test-file.html(ケバブケース)
TestFile.html(パスカルケース、アッパーキャメルケース)
test_file.html(スネークケース)
index.html
main.js
module.js