Last active
August 29, 2015 14:03
-
-
Save Eternal-tears/fbc83eeb7eb073210d9f to your computer and use it in GitHub Desktop.
WordPressテーマ開発用Gruntfile
This file contains hidden or 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
| 'use strict'; | |
| module.exports = function(grunt) { | |
| grunt.initConfig({ | |
| pkg: grunt.file.readJSON('package.json'), | |
| dir: { | |
| bin:'dev', //→開発テーマ=作業フォルダ | |
| release:'Lovelog_ver36', //→自分用のテーマ | |
| js: 'js', //→JSフォルダ | |
| css: 'css', //→cssフォルダ | |
| img:'images', //→画像フォルダ | |
| sass:'scss', //→scssフォルダ | |
| blog:'Lovelog_ver36_blog', //→配布用テーマ | |
| project:'Lovelog_ver36_dev', //→開発環境ごと渡すテーマ | |
| bower:'bower_components', //→foundation5フォルダ一式 | |
| }, | |
| uglify: { | |
| min: { //保留フォルダ/js/全てのjsファイルを圧縮します。 | |
| expand: true, | |
| cwd: '<%= dir.release %>/<%= dir.js %>/', | |
| src: ['**/*.js'], | |
| dest: '<%= dir.release %>/<%= dir.js %>/' | |
| }, | |
| foundation:{ //保留フォルダ/bower_components/foundationフォルダ内にある全てのjsファイルを圧縮します。 | |
| expand: true, | |
| cwd: '<%= dir.release %>/<%= dir.bower %>/foundation', | |
| src: ['**/*.js','!**/foundation.min.js'], | |
| dest: '<%= dir.release %>/<%= dir.bower %>/foundation' | |
| }, | |
| modernizr:{ //保留フォルダ/bower_components/modernizrフォルダ内にある全てのjsファイルを圧縮します。 | |
| expand: true, | |
| cwd: '<%= dir.release %>/<%= dir.bower %>/modernizr', | |
| src: ['modernizr.js'], | |
| dest: '<%= dir.release %>/<%= dir.bower %>/modernizr' | |
| } | |
| }, | |
| csscomb:{ | |
| dev:{ | |
| expand: true, | |
| cwd: '<%= dir.release %>/', | |
| src: ['*.css'], | |
| dest: '<%= dir.release %>/' | |
| } | |
| }, | |
| cssmin: { | |
| all: { //全てのCSSファイルを圧縮します。 | |
| expand: true, | |
| cwd: '<%= dir.release %>/', //ファイル元 | |
| src: ['*.css'], //全てのCSSファイル | |
| dest: '<%= dir.release %>/' //圧縮したファイルの保存先 | |
| } | |
| }, | |
| copy: { | |
| files: { //開発フォルダ内のbower_componentsフォルダを保留フォルダにコピー | |
| expand:true, | |
| cwd:'<%= dir.bin %>/<%= dir.bower %>/', | |
| src:['**'], | |
| dest:'<%= dir.release %>/<%= dir.bower %>/' | |
| }, | |
| files2: { //開発フォルダ内のlanguagesフォルダを保留フォルダにコピー | |
| expand:true, | |
| cwd:'<%= dir.bin %>/languages/', | |
| src:['**'], | |
| dest:'<%= dir.release %>/languages/' | |
| }, | |
| php: { //開発フォルダ内の全てのPHPファイルを保留フォルダにコピー | |
| expand: true, | |
| cwd: '<%= dir.bin %>/', | |
| src: ['**/*.php'], | |
| dest: '<%= dir.release %>/' | |
| }, | |
| css: { //開発フォルダ内の全てのCSSファイルを保留フォルダにコピー | |
| expand: true, | |
| cwd: '<%= dir.bin %>/', | |
| src: ['**.css'], | |
| dest: '<%= dir.release %>/' | |
| }, | |
| images: { //開発フォルダ内のimages内の全ての画像を保留フォルダにコピー | |
| expand: true, | |
| cwd: '<%= dir.bin %>/', | |
| src: ['images/**'], | |
| dest: '<%= dir.release %>/' | |
| }, | |
| js: { //開発フォルダ内のjs内の全てのjsファイルを保留フォルダにコピー | |
| expand: true, | |
| cwd: '<%= dir.bin %>/', | |
| src: ['js/**'], | |
| dest: '<%= dir.release %>/' | |
| }, | |
| allcopyhome: { | |
| expand:true, | |
| cwd:'<%= dir.release %>', | |
| src:['**'], | |
| dest:'../<%= dir.release %>' | |
| }, | |
| allcopyblog: { | |
| expand:true, | |
| cwd:'<%= dir.release %>', | |
| src:['**'], | |
| dest:'../<%= dir.blog %>' | |
| }, | |
| allcopydev: { | |
| expand:true, | |
| cwd:'./', | |
| src:['**'], | |
| dest:'<%= dir.project %>/' | |
| }, | |
| }, | |
| clean: { | |
| deleteReleaseFolder: { | |
| src: '<%= dir.release %>/' | |
| }, | |
| deleteReleaseFolderblog: { | |
| src: '<%= dir.blog %>/' | |
| }, | |
| deleteReleaseFolderdev: { | |
| src: '<%= dir.project %>/' | |
| }, | |
| deletebower:{ | |
| src: [ | |
| '<%= dir.release %>/<%= dir.bower %>/fastclick/', | |
| '<%= dir.release %>/<%= dir.bower %>/jqueryplaceholder/', | |
| '<%= dir.release %>/<%= dir.bower %>/jquery.cookie/', | |
| '<%= dir.release %>/<%= dir.bower %>/modernizr/feature-detects/', | |
| '<%= dir.release %>/<%= dir.bower %>/modernizr/media/', | |
| '<%= dir.release %>/<%= dir.bower %>/modernizr/test/', | |
| '<%= dir.release %>/<%= dir.bower %>/modernizr/grunt.js', | |
| '<%= dir.release %>/<%= dir.bower %>/jquery/bower.json', | |
| '!<%= dir.release %>/<%= dir.bower %>/jquery/dist/jquery.min.map', | |
| '<%= dir.release %>/<%= dir.bower %>/jquery/dist/jquery.js', | |
| '<%= dir.release %>/<%= dir.bower %>/jquery/src/', | |
| '<%= dir.release %>/<%= dir.bower %>/jquery-placeholder/' | |
| ] | |
| }, | |
| deletefoundationhome:{ | |
| src: [ | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/css/', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/scss/', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/bower.json', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation.min.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.abide.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.accordion.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.alert.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.clearing.js', | |
| //'<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.dropdown.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.equalizer.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.interchange.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.joyride.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.magellan.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.offcanvas.js', | |
| //'<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.orbit.js', | |
| //'<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.reveal.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.slider.js', | |
| //'<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.tab.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.tooltip.js', | |
| //'<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.topbar.js', | |
| ] | |
| }, | |
| deletefoundationblog:{ | |
| src: [ | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/css/', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/scss/', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/bower.json', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation.min.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.abide.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.accordion.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.alert.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.clearing.js', | |
| //'<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.dropdown.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.equalizer.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.interchange.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.joyride.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.magellan.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.offcanvas.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.orbit.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.reveal.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.slider.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.tab.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.tooltip.js', | |
| //'<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/foundation.topbar.js', | |
| ] | |
| }, | |
| deletefoundatinplugin:{ | |
| src:[ | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/**/*.js', | |
| '!<%= dir.release %>/<%= dir.bower %>/foundation/**/*.all.js', | |
| '<%= dir.release %>/<%= dir.bower %>/foundation/js/foundation/' | |
| ] | |
| }, | |
| deleteallhome:{ | |
| src:[ | |
| '<%= dir.release %>/<%= dir.bower %>/**/', | |
| '<%= dir.release %>/**/*.js', | |
| '<%= dir.bin %>/<%= dir.sass %>/style-home.scss', | |
| '!<%= dir.release %>/<%= dir.js %>/bower.all.js', | |
| '!<%= dir.release %>/<%= dir.js %>/in-function.js', | |
| '!<%= dir.release %>/<%= dir.js %>/in-function-mobile.js', | |
| ] | |
| }, | |
| deleteallblog:{ | |
| src:[ | |
| '<%= dir.release %>/<%= dir.bower %>/**/', | |
| '<%= dir.release %>/**/*.js', | |
| '<%= dir.release %>/home.php', | |
| '<%= dir.release %>/reference.php', | |
| '<%= dir.release %>/content-category.php', | |
| '<%= dir.bin %>/<%= dir.sass %>/style-blog.scss', | |
| '!<%= dir.release %>/<%= dir.js %>/bower.all.js', | |
| '!<%= dir.release %>/<%= dir.js %>/in-function.js', | |
| '!<%= dir.release %>/<%= dir.js %>/in-function-mobile.js', | |
| ] | |
| }, | |
| deletealldev:{ | |
| src:[ | |
| '<%= dir.project %>/<%= dir.release %>/**/', | |
| '<%= dir.project %>/<%= dir.blog %>/**/', | |
| ] | |
| }, | |
| deletedevtheme:{ | |
| src:[ | |
| '<%= dir.release %>/**/', | |
| '<%= dir.bin %>/style.css', | |
| ] | |
| }, | |
| }, | |
| concat: { | |
| jquery: { | |
| src: ['<%= dir.release %>/<%= dir.bower %>/jquery/**/*.js','<%= dir.release %>/<%= dir.bower %>/modernizr/*.js','<%= dir.release %>/<%= dir.bower %>/foundation/js/**/*.js'], //結合する対象ファイル | |
| dest: '<%= dir.release %>/<%= dir.js %>/bower.all.js', //結合してリネームしたファイルの保存先 | |
| }, | |
| othershome: { | |
| src: ['<%= dir.release %>/<%= dir.js %>/jquery.sticky-kit.min.js','<%= dir.release %>/<%= dir.js %>/jQueryAutoHeight.js','<%= dir.release %>/<%= dir.js %>/in-function.js'], | |
| dest: '<%= dir.release %>/<%= dir.js %>/in-function.js', | |
| }, | |
| othersblog: { | |
| src: ['<%= dir.release %>/<%= dir.js %>/jquery.sticky-kit.min.js','<%= dir.release %>/<%= dir.js %>/jQueryAutoHeight.js','<%= dir.release %>/<%= dir.js %>/in-function-blog.js'], | |
| dest: '<%= dir.release %>/<%= dir.js %>/in-function.js', | |
| }, | |
| sasshome: { | |
| src: ['<%= dir.bin %>/<%= dir.sass %>/_home-theme-name.scss','<%= dir.bin %>/<%= dir.sass %>/style.scss','<%= dir.bin %>/scss/_home.scss',], | |
| dest: '<%= dir.bin %>/<%= dir.sass %>/style-home.scss', | |
| }, | |
| sassblog: { | |
| src: ['<%= dir.bin %>/<%= dir.sass %>/_blog-theme-name.scss','<%= dir.bin %>/<%= dir.sass %>/style.scss','<%= dir.bin %>/scss/_blog.scss',], | |
| dest: '<%= dir.bin %>/<%= dir.sass %>/style-blog.scss', | |
| }, | |
| }, | |
| sass: { | |
| disthome: { | |
| files: { | |
| '<%= dir.bin %>/style.css': '<%= dir.bin %>/<%= dir.sass %>/style-home.scss' | |
| } | |
| }, | |
| distblog: { | |
| files: { | |
| '<%= dir.bin %>/style.css': '<%= dir.bin %>/<%= dir.sass %>/style-blog.scss' | |
| } | |
| }, | |
| }, | |
| pngmin: { | |
| compile:{ | |
| options: { | |
| ext:'.png', //デフォルトでは拡張子の前に、【-fs8】がついて、画像名+-fs8+.pngになるので、デフォルト値を取る。 | |
| force: true //同名の既存の画像ファイルがある場合、上書きするか否か。デフォルト値はfalseなので上書きされない設定になっているので、trueにする。 | |
| }, | |
| files: [{ | |
| expand: true, | |
| src: ['**/*.png'], //対象ファイル | |
| cwd: '<%= dir.bin %>/images/', //圧縮する対象の画像フォルダ先 | |
| dest: '<%= dir.release %>/images/' //圧縮した画像の保存先 | |
| }] | |
| } | |
| }, | |
| }); | |
| grunt.loadNpmTasks('grunt-contrib-copy'); | |
| grunt.loadNpmTasks('grunt-contrib-clean'); | |
| grunt.loadNpmTasks('grunt-contrib-cssmin'); | |
| grunt.loadNpmTasks('grunt-contrib-uglify'); | |
| grunt.loadNpmTasks('grunt-contrib-watch'); | |
| grunt.loadNpmTasks('grunt-csscomb'); | |
| grunt.loadNpmTasks('grunt-contrib-concat'); | |
| grunt.loadNpmTasks('grunt-contrib-sass'); | |
| grunt.loadNpmTasks('grunt-pngmin'); | |
| grunt.registerTask('default', ['cssmin']); | |
| //私用テーマ作成用 | |
| grunt.registerTask('home', ['clean:deleteReleaseFolder','concat:sasshome','sass:disthome','copy:files','copy:files2','copy:php','copy:css','copy:js','pngmin','cssmin:all','clean:deletebower','clean:deletefoundationhome','uglify','concat:jquery','concat:othershome','clean:deleteallhome','copy:allcopyhome','clean:deletedevtheme']); | |
| //配布用テーマ作成用 | |
| grunt.registerTask('blog', ['clean:deleteReleaseFolderblog','concat:sassblog','sass:distblog','copy:files','copy:files2','copy:php','copy:css','copy:js','pngmin','cssmin:all','clean:deletebower','clean:deletefoundationblog','uglify','pngmin','concat:jquery','concat:othersblog','clean:deleteallblog','copy:allcopyblog','clean:deletedevtheme']); | |
| //開発環境ごと渡す用 | |
| grunt.registerTask('dev', ['clean:deleteReleaseFolderdev','copy:allcopydev','clean:deletealldev']); | |
| //ローカル確認用私用テーマ作成用…非圧縮 | |
| grunt.registerTask('local-home', ['clean:deleteReleaseFolder','concat:sasshome','sass:disthome','copy:files','copy:files2','copy:php','copy:css','copy:images', 'copy:js','csscomb','clean:deletebower','clean:deletefoundationhome','concat:jquery','concat:othershome','clean:deleteallhome','copy:allcopyhome','clean:deletedevtheme']); | |
| //ローカル確認用配布用テーマ作成用…非圧縮 | |
| grunt.registerTask('local-blog', ['clean:deleteReleaseFolderblog','concat:sassblog','sass:distblog','copy:files','copy:files2','copy:php','copy:css','copy:images','copy:js','csscomb','clean:deletebower','clean:deletefoundationblog','concat:jquery','concat:othersblog','clean:deleteallblog','copy:allcopyblog','clean:deletedevtheme']); | |
| }; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment