Last active
December 20, 2015 13:29
-
-
Save masamunet/6139374 to your computer and use it in GitHub Desktop.
ぼくがかんがえたさいきょうのGruntfileを晒してみる ref: http://qiita.com/masamunet/items/34022da57e2143d9084a
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#除外ファイル | |
exclude = [ | |
'!**/.DS_Store' | |
'!**/Thumbs.db' | |
'!**/*.coffee' | |
'!**/*.map' | |
'!**/*.scss' | |
'!**/*.less' | |
'!**/*.s.css' | |
'!**/*.l.css' | |
'!**/<%= dir.cssCompile %>/' | |
'!**/coffee/' | |
'!**/sass/' | |
'!**/less/' | |
'!**/_notes/' | |
'!**/.idea/' | |
'!**/.gitignore' | |
'!**/*.mno' | |
'!**/Templates/' | |
'!**/Library' | |
'!**/*.dwt' | |
'!**/*.lbi' | |
'!**/*.fla' | |
] | |
module.exports = (grunt) -> | |
pkg = grunt.file.readJSON 'package.json' | |
grunt.initConfig | |
#ディレクトリ設定 | |
dir : | |
src : 'src' | |
dist : 'dist' | |
test : '<%= dir.src %>/test' | |
doc : 'docs' | |
js : 'js' | |
css : 'css' | |
cssCompile : '<%= dir.src %>/<%= dir.css %>.compile' | |
#package.jsonの読み込み | |
pkg : pkg | |
#クリーン | |
clean: | |
js: | |
src : '<%= dir.src %>/<%= dir.js %>/*' | |
css: | |
src : '<%= dir.src %>/<%= dir.css %>/*' | |
build : | |
src : ['<%= dir.dist %>/**', '<%= dir.doc %>/**'] | |
#CoffeeScriptコンパイル | |
coffee: | |
options: | |
sourceMap : true | |
#通常はルートディレクトリのcoffeeディレクトリに置かれたスクリプトをメインとする | |
main : | |
src : '<%= dir.src %>/coffee/*.coffee' | |
dest : '<%= dir.src %>/<%= dir.js %>/<%= pkg.name %>.js' | |
#サブディレクトリのCoffeeScriptもコンパイル | |
all : | |
expand : true | |
ext : '.js' | |
src : ['<%= dir.src %>/**/*.coffee', '!<%= coffee.main.src %>'] | |
#Sassコンパイル | |
sass: | |
#通常はルートディレクトリのsassディレクトリに置かれたCSSをメインとする | |
main : | |
src : '<%= dir.src %>/sass/*.scss' | |
dest : '<%= dir.cssCompile %>/<%= pkg.name %>.s.css' | |
#サブディレクトリのSassもコンパイル | |
all : | |
expand : true | |
ext : '.css' | |
src : ['<%= dir.src %>/**/*.scss', '!<%= sass.main.src %>', '!<%= dir.src %>/<%= dir.css %>/<%= pkg.name %>.css', '<%= concat.css.dest %>'] | |
#Lessコンパイル | |
less: | |
#通常はルートディレクトリのlessディレクトリに置かれたCSSをメインとする | |
main : | |
src : '<%= dir.src %>/less/*.less' | |
dest : '<%= dir.cssCompile %>/<%= pkg.name %>.l.css' | |
#サブディレクトリのlassもコンパイル | |
all : | |
expand : true | |
ext : '.css' | |
src : ['<%= dir.src %>/**/*.less', '!<%= less.main.src %>', '!<%= dir.src %>/<%= dir.css %>/<%= pkg.name %>.css', '<%= concat.css.dest %>'] | |
#結合 | |
concat: | |
#コンパイルされたCSSを結合 | |
css : | |
src : '<%= dir.cssCompile %>/*.*.css' | |
dest : '<%= dir.src %>/<%= dir.css %>/<%= pkg.name %>.css' | |
#画像最適化 | |
imagemin: | |
dev : | |
optimizationLevel: 3 | |
files : [ | |
expand: true | |
src: '<%= dir.src %>/**/*.{png,jpg,jpeg}' | |
] | |
dist : | |
optimizationLevel: 3 | |
files : [ | |
expand: true | |
src: '<%= dir.dist %>/**/*.{png,jpg,jpeg}' | |
] | |
#監視ファイル | |
watch: | |
coffee: | |
files : '<%= coffee.main.src %>' | |
tasks : 'coffee:main' | |
coffeeAll: | |
files : '<%= coffee.all.src %>' | |
tasks : 'coffee:all' | |
sass: | |
files : '<%= sass.main.src %>' | |
tasks : 'sass:main' | |
sassAll: | |
files : '<%= sass.all.src %>' | |
tasks : 'sass:all' | |
less: | |
files : '<%= less.main.src %>' | |
tasks : 'less:main' | |
lessAll: | |
files : '<%= less.all.src %>' | |
tasks : 'less:all' | |
css: | |
files : '<%= concat.css.src %>' | |
tasks : 'concat:css' | |
#コピー | |
copy: | |
build : | |
expand : true | |
filter: 'isFile' | |
cwd : '<%= dir.src %>/' | |
src : ['**'].concat exclude | |
dest : '<%= dir.dist %>/' | |
#htmlのminify | |
htmlmin: | |
all : | |
options : | |
removeComments : true | |
removeCommentsFromCDATA : true | |
removeCDATASectionsFromCDATA : true | |
collapseWhitespace : true | |
removeRedundantAttributes : true | |
removeOptionalTags : true | |
expand : true | |
src : '<%= dir.dist %>/**/*.html' | |
#JSのminify | |
uglify: | |
options : | |
banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n' | |
main : | |
expand : true | |
src : '<%= dir.dist %>/<%= dir.js %>/<%= pkg.name %>.js' | |
all : | |
expand : true | |
src : ['<%= dir.dist %>/**/*.js', '!<%= uglify.main.src %>'] | |
#CSSのminify | |
cssmin: | |
main : | |
expand : true | |
src : '<$= dir.dist %>/<%= dir.css %>/<%= pkg.name %>.css' | |
all : | |
expand : true | |
src : ['<%= dir.dist %>/**/*.css', '!<%= cssmin.main.src %>'] | |
#yuidoc | |
yuidoc: | |
dist: | |
name : '<%= pkg.name %>' | |
description : '<%= pkg.description %>' | |
version : '<%= pkg.version %>' | |
options : | |
paths : '<%= dir.src %>/' | |
outdir : '<%= dir.doc %>' | |
syntaxtype : 'coffee' | |
extension : '.coffee' | |
for taskName of pkg.devDependencies when taskName.substring(0, 6) is 'grunt-' | |
grunt.loadNpmTasks taskName | |
#どういった用途で使用するか明示的にするためにも、冗長なエイリアスも指定しておく | |
grunt.registerTask 'default', 'watch' | |
grunt.registerTask 'w', 'watch' | |
grunt.registerTask 'c', ['clean:js', 'clean:css'] | |
grunt.registerTask 'main', ['coffee:main', 'sass:main', 'less:main'] | |
grunt.registerTask 'compile', ['coffee:all', 'sass:all', 'less:all'] | |
grunt.registerTask 'img', 'imagemin:dev' | |
grunt.registerTask 'build', ['clean:build', 'copy', 'imagemin:dist', 'htmlmin', 'uglify', 'cssmin', 'yuidoc'] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment