Expressのwebアプリのディレクトリー構成(2018年2月版) #express #nodejs
iruca.coの開発をしばらく続けてきて、大体こんな感じでディレクトリーの構成をするようになった、という話。Node.jsでExpressを使っている。src/actions
ができたのはsrc/routes
に処理を書いていくと長くなりがちだから、ファイル単位で分離しやすいように。
- 📁 .circleci
- 📁 assets
- 📁 img: AIファイルとか、画像作成用のリソース
- 📁 js: babelしてminifyする前のクライアント側JS
- 📁 sass: Sassファイル
- 📁 etc
- 📁 db
- 📁 migration: DB変更時のmigration用SQLファイル
- tables.sql: テーブル等の定義が書かれているDDL
- 📁 ssl: SSL証明書発行用のCSRファイルとか(現在使ってない)
- 📁 public: webに公開されるフォルダー
- 📁 css: Sassファイルはコンパイルされてここに入る
- 📁 img: 画像置き場(svgが多い)
- 📁 js: JSファイルはbabel、minifyされてここに入る
- 📁 src
- 📁 actions: 実際の処理が書かれてるファイル。routesから呼び出されて実行される
- 📁 batch: バッチ処理用のスクリプト置き場
- 📁 lib: 共通部品たち
- 📁 model: DBアクセスやロジックに関わる共通部品たち
- 📁 routes: ルーティング定義、middlewareもここでかませる
- app.js: 処理の起点となるファイル
- 📁 static
- maintenance.html: メンテナンス用静的ファイル。S3にデプロイ
- 📁 tests: mocha/chaiによるテストファイル
- 📁 views: テンプレートファイル置き場
- gulpfile.js: Gulp用。Webpack使ってない
- package.json: npm用だけどパッケージ管理はyarn使ってる
- Procfile: Herokuでの起動スクリプト定義
- yarn.lock: パッケージ管理