案件の開発環境のメモ。
WordPressの開発環境はVCCWを利用している。
テーマの構成は下記のようにしている。
mytheme
|
|— css // サードパーティーCSS
|
|- dev
|
|— css // コンパイルして mytheme/style.cssを作成
|- _style1.scss
|- _style2.scss
|..
|- _styleN.scss
|..
|- _style.scss
|— js // grunt-contrib-concatで結合してmytheme/js/mytheme.js作成
|- script1.js
|- script2.js
|..
|- scriptN.js
|
|- tests
|- qunit-1.19.0.css
|- quint-1.19.0.js
|- test.html
|- textcase.js
|
|- jsdocs // YUIDocフォルダ grunt-contrib-yuidocでJavaScrptドキュメンテーション作成
|
|- node_modules
|
|- phpcs // PHP_CodeSniffer
|
|- phptests // PHPUnit
|
|- phpdocs // phpDocumentor
|
|- styledocs // hologramフォルダ grunt-hologramでスタイルガイド作成
|
|- wpcs // WordPress-Coding-Standardsフォルダ
|
|- .ftppass // grunt-sftp-deployのFTP情報ファイル
|
|- config.rg // Compass設定ファイル(El Capitanへバージョンアップ後は使用していない 2016.02.18)
|
|— Gruntfile.js // Grunt設定ファイル
|
|- hologram_config.yml // hologram設定ファイル
|
|— package.json // Gruntパッケージファイル
|
|- images // テーマの画像
|
|- js // mytheme.jsとサードパーティーのスクリプト
|
|-- inc
|-- class.example.php
|
|- index.php
|
|- style.css
CSSプリプロセッサー。
Sass: Syntactically Awesome Style Sheets
$ sudo gem install sass
style.scssをコンパイルし同フォルダにstyle.cssを作成する例。
$ sass style.scss style.css
$ sass --watch style.scss:style.css
ctrl + Cで監視を停止する。
OS X El Capitanへバージョンアップ後はCompassは利用していない(2016.02.18)。代わりにgrunt-contrib-sassを利用している。
Sassを使ったCSS作成フレームワーク。
Compass Home | Compass Documentation
Sass/Compass のインストールと基本的な環境設定 | Web Design Leaves
$ sudo gem install compass
$ compass create --bare
contrib.rbとsassフォルダが作成される。
$ cd /path/to/mytheme/dev
$ compass create --bare
mytheme
|
|—dev
| |— css
| | |— style.scss
| |
| |— contrib.rb
|
|—index.html
|
|- style.css
contrib.rbの設定例
// 設定
css_dir = ".."
sass_dir = “css”
// compass専用コメントの出力を停止
line_comments = false
上記例ではcompassコマンドでコンパイルするとdev/cssフォルダのモジュールファイルを除いたscssファイルをコンパイルしmythemeディレクトリへ出力する。
$ compass watch css/style.scss
Grunt: The JavaScript Task Runner
Gruntはgrunt-cliのみグローバルへインストールしGrunt本体も含めた各パッケージはプロジェクトごとのフォルダへインストールする。
Gruntはnode.js/npmを使う。
node.jsはサイトからpkgファイルをダウンロードしインストールする。
npmはnode.jsと一緒にインストールされる。
$ sudo npm install -g grunt-cli
上記例では/path/to/mytheme/devへpackage.jsonを作成する。
{
"name": "example",
"version": "0.0.1"
}
grunt本体とプラグインはプロジェクトごとにプロジェクトのフォルダへインストールする。
$ cd /path/to/mytheme/dev
$ npm install grunt --save-dev
オプション–save-devをつけてnpm installを行えばpackage.jsonのdevDependenciesへプラグイン情報が追記される。
{
"name": "example",
"version": "0.0.1",
"devDependencies": {
"grunt": "~0.4.1"
}
}
スタイルガイド。
$ sudo gem install hologram
$ npm install grunt-hologram --save-dev
Gruntfile.jsを配置したフォルダで下記コマンド実行する。
$ hologram init
設定フィルhologram_config.ymlが作成される。
Gruntfileへhologramの設定を記載する。
hologram: {
generate: {
options: {
config: 'hologram_config.yml'
},
},
},
npm -g install yuidocjs.
yuidoc
yuidoc: {
compile: {
name: 'mytheme',
description: 'mytheme documentation.',
version: '0.0.1',
url: 'http://www.example.com',
options: {
paths: "js",
outdir: "jsdocs"
}
}
}
$ npm install grunt-phpdocumentor --save-dev
Gruntfile.js
phpdocumentor: {
dist: {
options: {
directory : [ "../inc" ],
target : "phpdocs"
}
}
},
grunt.loadNpmTasks('grunt-phpdocumentor');
最近はGruntによる自動実行はせず下記記事のようにVCCWへログインしてテストを実行しています(追記 2016.05.12)。
案件テーマ開発環境(その2 単体テスト) : WordPress
VCCWはPHPUnitがインストール済みだがVagrantへログインせずテストするためにインストール。
$ npm install grunt-phpunit --save-dev
Gruntfile.js
phpunit: {
classes: {
dir: './phptests/'
},
options: {
bin: '/usr/local/bin/phpunit',
colors: true
}
},
grunt.loadNpmTasks('grunt-phpunit');
phpunitのパスが/usr/local/bin/phpunitの場合。
Qunitはgrunt-contrib-qunitを使う。grunt-contrib-qunitはPhantomJSで実行される。
grunt-lib-phantomjsはgrunt-contrib-qunitと同時にインストールします。
$ npm install grunt-contrib-qunit --save-dev
QUnitはCDNから読み込むのではなくローカルに保存して読み込む。
Gruntfile.js
qunit: {
all: ["js/test/*.html"]
},
下記リンクにPHP_CodeSnifferをスタンドアローンでインストールする方法が記載してある。
WordPress-Coding-Standards/WordPress-Coding-Standards
mytheme/dev/phpcs、mytheme/dev/wpcs
cd /path/to/mytheme/dev
git clone https://github.com/squizlabs/PHP_CodeSniffer.git phpcs
git clone -b master https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git wpcs
cd phpcs
./scripts/phpcs --config-set installed_paths ../wpcs
phpcs: {
application: {
src: ["../*.php"]
},
options: {
bin: './phpcs/scripts/phpcs',
standard: "WordPress"
}
},
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。