-
Notifications
You must be signed in to change notification settings - Fork 8
06. 設定
Frontainer edited this page Nov 3, 2016
·
1 revision
frontplate-cliのビルドはfrp.config.js
に設定を書くことでコントロールすることができます。
指定した設定は上書きされるので注意してください。初期の設定は次のURLにあるので初めてカスタマイズする際にはこちらを参考に変更を加えてみてください。
https://github.com/frontainer/frontplate-cli/tree/master/config
基本構成テンプレート
'use strict';
module.exports = function(production) {
global.FRP_SRC = global.FRP_SRC || 'src'; // ↑ v2.0.0
global.FRP_DEST = global.FRP_DEST || 'public';
return {
clean: {},
html: {},
style: production ? {} : {},
script: production ? {} : {},
server: {},
copy: {},
sprite: [],
test: {}
}
};
設定例
'use strict';
// production:Booleanで-pフラグがついているかどうかを判定して設定を振り分けることができます。
module.exports = function(production) {
global.FRP_DEST = global.FRP_DEST || 'public'; // ビルドしたファイルを出力するディレクトリ
return {
// クリーン
clean: {
src: FRP_DEST // ビルド時に余分なファイルを削除します。基本的にはFRP_DESTと同じディレクトリを指定します。
},
// HTML生成
html: {
src: 'src/view/**/*.ejs', // 読み込むビューファイル。EJSの詳しい使い方は http://ejs.co/ で
dest: FRP_DEST, // HTMLファイルの出力先
params: { // EJSで使うグローバル変数。ここで記述したものはHTMLで呼び出すことができます
title: 'title'
},
// 1つのテンプレートで複数のHTMLを作成するときに使用します
pages: [
{
name: 'filename', // 出力するファイル名です。.htmlは省略します。
src: 'src/view/tmpl/_template.ejs', // テンプレートとなるEJSファイルを指定します。
params: { // ページに渡す変数です。
title: 'page title'
}
}
],
// htmlhintルールを定義できます。詳しくは https://github.com/yaniswang/HTMLHint/wiki/Rules で
rules: {
"tagname-lowercase": true,
"attr-lowercase": false,
"attr-value-double-quotes": true,
"attr-value-not-empty": true,
"attr-no-duplication": true,
"doctype-first": false,
"tag-pair": true,
"tag-self-close": false,
"spec-char-escape": true,
"id-unique": true,
"src-not-empty": true,
"head-script-disabled": true,
"img-alt-require": true,
"doctype-html5": true,
"id-class-value": false,
"style-disabled": false,
"space-tab-mixed-disabled": true,
"id-class-ad-disabled": true,
"href-abs-or-rel": false,
"attr-unsafe-chars": true
}
},
// CSS生成
style: {
src: 'src/sass/**/*.scss', // 読み込むscssファイルです。globパターンで指定できます。
dest: FRP_DEST + '/assets/css', // CSSの出力先です
outputStyle: 'compact', // SASSの出力形式です
sourceMap: true, // SourceMap出力の有無です
plugins: [ // postcssプラグイン // postcssのプラグインです。デフォルトではautoprefixerのみ指定されています。
require('autoprefixer')({
// autoprefixer(https://github.com/postcss/autoprefixer)
// サポートするブラウザを指定します
browsers: [
'last 3 version',
'ie >= 9',
'Android >= 4.0'
]
})
],
// スタイルガイドの設定
styleguide: {
title: 'StyleGuide', // スタイルガイドのタイトル
verbose: false, // スタイルガイド生成の詳細表示有無
clean: true, // 生成時にスタイルガイドを一度削除するかどうか
params: {}, // スタイルガイドに渡したいグローバル変数です
css: '../' + FRP_DEST + '/assets/css/style.css', // スタイルガイドで呼び出すCSSまでのパスを指定します
script: '../public/assets/js/app.js', // スタイルガイドで呼び出すJSまでのパスを指定します
}
},
// JavaScript
script: {
// webpackのconfigと同じものが指定できます。 http://webpack.github.io/docs/configuration.html
// https://github.com/webpack/webpack/tree/v2.1.0-beta.25 ※ version2が使われています
},
// BrowserSync
server: {
// BrowserSyncのconfigと同じものが指定できます。 https://www.browsersync.io/docs/options
},
// ファイルコピー
copy: {
// 'path/from': '/path/to' という形でファイルを複製します。
'src/lib/**/*': FRP_DEST + '/assets/lib',
'src/images/**/*': FRP_DEST + '/assets/images'
},
// スプライト画像
sprite: [ // 複数のスプライト画像を生成することができます。
{
src: 'src/sprites/icon/*.{png,gif,jpg}', // 読み込む画像
destImage: 'src/images/icon.png', // 画像出力先
destCSS: 'src/sass/sprites/_icon.scss', // CSS出力先
imgPath: '../images/icon.png', // CSS内での画像パス
padding: 2 // 画像の間隔
}
],
// ユニットテスト
test: {
// karmaのconfigと同じものが指定できます。 http://karma-runner.github.io/1.0/config/configuration-file.html
}
}
};