[Middleman 4] Middleman 4 で生成されたプロジェクトファイルと初期設定を確認する
素の Middleman 4 の config を確認します。
[markdown]
“`prettyprinted
% middleman version
Middleman 4.2.1
“`
> * [Middleman: 作業を効率化するフロントエンド開発ツール](https://middlemanapp.com/jp/)
> * [DriftwoodJP/sandbox-middleman4](https://github.com/DriftwoodJP/sandbox-middleman4)
## インストール
通常は `gem install` で。
“`prettyprinted
% gem install middleman
“`
動作確認をしたいので、`bundle install` します。
“`prettyprinted
% bundle init
“`
“`ruby:Gemfile
# frozen_string_literal: true
source ‘https://rubygems.org’
gem ‘middleman’
“`
“`prettyprinted
% bundle
“`
## プロジェクトの初期化
`middleman init` すると指定したディレクトリにファイルが展開されます。
“`prettyprinted
% middleman init middleman4_project
“`
以下で開発サーバを起動します。
“`prettyprinted
% cd middleman4_project
% middleman server
“`
## 標準セットアップ時のコンフィギュレーション
middleman4_project に展開されたファイルの状況を確認します。
### Gem
`middleman-autoprefixer` は標準添付されています。
“`ruby:Gemfile
source ‘https://rubygems.org’
gem ‘middleman’, ‘~> 4.2’
gem ‘middleman-autoprefixer’, ‘~> 2.7’
gem ‘tzinfo-data’, platforms: [:mswin, :mingw, :jruby]
gem ‘wdm’, ‘~> 0.1’, platforms: [:mswin, :mingw]
“`
「[Compass は拡張機能になりました。デフォルトでは同梱されます。](https://middlemanapp.com/jp/basics/upgrade-v4/)」となっていましたが、現行バージョンでは `@import ‘compass’` できず。
[正式](https://github.com/middleman/middleman/pull/2050)に外されていました。
“`prettyprinted
% bundle list
Gems included by the bundle:
* activesupport (5.0.3)
* addressable (2.5.1)
* backports (3.8.0)
* bundler (1.14.6)
* coffee-script (2.4.1)
* coffee-script-source (1.12.2)
* compass-import-once (1.0.5)
* concurrent-ruby (1.0.5)
* contracts (0.13.0)
* dotenv (2.2.1)
* erubis (2.7.0)
* execjs (2.7.0)
* fast_blank (1.0.0)
* fastimage (2.1.0)
* ffi (1.9.18)
* haml (5.0.1)
* hamster (3.0.0)
* hashie (3.5.5)
* i18n (0.7.0)
* kramdown (1.13.2)
* listen (3.0.8)
* memoist (0.15.0)
* middleman (4.2.1)
* middleman-cli (4.2.1)
* middleman-core (4.2.1)
* minitest (5.10.2)
* padrino-helpers (0.13.3.3)
* padrino-support (0.13.3.3)
* parallel (1.11.2)
* public_suffix (2.0.5)
* rack (2.0.3)
* rb-fsevent (0.9.8)
* rb-inotify (0.9.8)
* sass (3.4.24)
* servolux (0.13.0)
* temple (0.8.0)
* thor (0.19.4)
* thread_safe (0.3.6)
* tilt (2.0.7)
* tzinfo (1.2.3)
* uglifier (3.2.0)
“`
### config.rb
– `autoprefixer` はセットアップ済みでした。
– `minify_css` と `minify_javascript` はコメントアウト後にそのまま利用可能でした。
“`ruby:config.rb
# Activate and configure extensions
# https://middlemanapp.com/advanced/configuration/#configuring-extensions
activate :autoprefixer do |prefix|
prefix.browsers = “last 2 versions”
end
# Layouts
# https://middlemanapp.com/basics/layouts/
# Per-page layout changes
page ‘/*.xml’, layout: false
page ‘/*.json’, layout: false
page ‘/*.txt’, layout: false
# With alternative layout
# page ‘/path/to/file.html’, layout: ‘other_layout’
# Proxy pages
# https://middlemanapp.com/advanced/dynamic-pages/
# proxy(
# ‘/this-page-has-no-template.html’,
# ‘/template-file.html’,
# locals: {
# which_fake_page: ‘Rendering a fake page with a local variable’
# },
# )
# Helpers
# Methods defined in the helpers block are available in templates
# https://middlemanapp.com/basics/helper-methods/
# helpers do
# def some_helper
# ‘Helping’
# end
# end
# Build-specific configuration
# https://middlemanapp.com/advanced/configuration/#environment-specific-settings
# configure :build do
# activate :minify_css
# activate :minify_javascript
# end
“`
### Middleman Configuration
`middleman server` 起動後に、設定状況を下記で確認できます。
http://localhost:4567/__middleman/config/
## プラグイン
よく使うであろうプラグインの状況を確認します。
標準で同梱されている機能。
– middleman-autoprefixer
– minify_css (activate :minify_css)
– minify_javascript (activate :minify_javascript)
– gzip (activate :gzip)
追加可能なプラグイン機能。
– middleman-livereload
– middleman-deploy
– middleman-imageoptim
– middleman-minify-html
> * [Middleman: 開発サイクル](https://middlemanapp.com/jp/basics/development-cycle/)
> * [Middleman: ビルド & デプロイ](https://middlemanapp.com/jp/basics/build-and-deploy/)
> * [Middleman: ファイルサイズ最適化](https://middlemanapp.com/jp/advanced/file-size-optimization/)
## ファイル構成
`middleman init` で生成されたプロジェクトのファイルレイアウトを確認します。
> * [Middleman: ディレクトリ構造](https://middlemanapp.com/jp/basics/directory-structure/)
– HTML テンプレートは、Haml も標準で利用可能です。
– scss ファイルは、Sass でコンパイルされます。
– js ファイルについては CoffeeScript を使わない場合、別の手段を用意する必要がありそう。
“`prettyprinted
.
├── Gemfile
├── Gemfile.lock
├── build
│ ├── images
│ ├── index.html
│ ├── javascripts
│ │ └── site.js
│ └── stylesheets
│ └── site.css
├── config.rb
└── source
├── images
├── index.html.erb
├── javascripts
│ └── site.js
├── layouts
│ └── layout.erb
└── stylesheets
└── site.css.scss
“`
## v3 から v4 へのアップグレード情報を確認する
細かい変更箇所は色々ありますが、やはり sprockets が外された影響が大きいですね。
この部分の手当は必要そうです。
> * [Middleman: v4 へのアップグレード](https://middlemanapp.com/jp/basics/upgrade-v4/)
いままで通りに assets を管理したい場合、middleman-sprockets を利用する選択肢もあります。
[ES2015 のコンパイルもできる](https://github.com/vast/middleman-es6)ようですが。
> * [middleman/middleman-sprockets: Sprockets support for Middleman](https://github.com/middleman/middleman-sprockets)
`external_pipeline` を素直に使うのが良さそうかな。
[webpack](https://webpack.github.io/) でしょうかね。
> * [Middleman: 外部パイプライン](https://middlemanapp.com/jp/advanced/external-pipeline/)
[/markdown]