mirror of https://github.com/artf/grapesjs.git
3 changed files with 2 additions and 255 deletions
@ -1,252 +0,0 @@ |
|||||
module.exports = function(grunt) { |
|
||||
|
|
||||
var appPath = 'src', |
|
||||
buildPath = 'dist', |
|
||||
stylePath = 'styles', |
|
||||
configPath = 'config/require-config.js', |
|
||||
port = grunt.option('port') || 8000; |
|
||||
|
|
||||
grunt.loadNpmTasks('grunt-contrib-requirejs'); |
|
||||
grunt.loadNpmTasks('grunt-contrib-connect'); |
|
||||
grunt.loadNpmTasks('grunt-contrib-uglify'); |
|
||||
grunt.loadNpmTasks('grunt-contrib-cssmin'); |
|
||||
grunt.loadNpmTasks('grunt-contrib-jshint'); |
|
||||
grunt.loadNpmTasks('grunt-contrib-concat'); |
|
||||
grunt.loadNpmTasks('grunt-contrib-watch'); |
|
||||
grunt.loadNpmTasks('grunt-contrib-clean'); |
|
||||
grunt.loadNpmTasks('grunt-contrib-copy'); |
|
||||
grunt.loadNpmTasks('grunt-bowercopy'); |
|
||||
grunt.loadNpmTasks('grunt-mocha'); |
|
||||
grunt.loadNpmTasks('grunt-sass'); |
|
||||
|
|
||||
grunt.initConfig({ |
|
||||
appDir: appPath, |
|
||||
builtDir: buildPath, |
|
||||
styleDir: stylePath, |
|
||||
pkg: grunt.file.readJSON("package.json"), |
|
||||
|
|
||||
requirejs:{ |
|
||||
compile:{ |
|
||||
options: { |
|
||||
mainConfigFile: '<%= appDir %>/' + configPath, |
|
||||
appDir: '<%= appDir %>', |
|
||||
dir: '<%= builtDir %>', |
|
||||
baseUrl: './', |
|
||||
name: 'main', |
|
||||
include: ["./../node_modules/almond/almond"], |
|
||||
removeCombined: true, |
|
||||
findNestedDependencies: true, |
|
||||
keepBuildDir: true, |
|
||||
inlineText: true, |
|
||||
optimize: 'none', |
|
||||
wrap: { |
|
||||
start: "(function (root, factory) {"+ |
|
||||
"if (typeof define === 'function' && define.amd)"+ |
|
||||
"define([], factory);"+ |
|
||||
"else if(typeof exports === 'object' && typeof module === 'object')"+ |
|
||||
"module.exports = factory();"+ |
|
||||
"else "+ |
|
||||
"root.<%= pkg.name %> = root.GrapesJS = factory();"+ |
|
||||
"}(this, function () {", |
|
||||
end: "return require('grapesjs/main'); }));" |
|
||||
}, |
|
||||
|
|
||||
paths: { |
|
||||
"jquery": "wrappers/jquery", |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
|
|
||||
jshint: { |
|
||||
all: [ |
|
||||
'Gruntfile.js', |
|
||||
'<%= appDir %>/**/*.js', |
|
||||
] |
|
||||
}, |
|
||||
|
|
||||
uglify: { |
|
||||
options: { |
|
||||
banner: '/*! <%= pkg.name %> - v<%= pkg.version %> */\n' |
|
||||
}, |
|
||||
build:{ |
|
||||
files: { |
|
||||
'<%= builtDir %>/grapes.min.js': ['<%= builtDir %>/main.js'] |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
|
|
||||
sass: { |
|
||||
dist: { |
|
||||
files: [{ |
|
||||
expand: true, |
|
||||
cwd: '<%= styleDir %>/scss', |
|
||||
src: ['**/*.scss'], |
|
||||
dest: '<%= styleDir %>/css', |
|
||||
ext: '.css' |
|
||||
}] |
|
||||
} |
|
||||
}, |
|
||||
|
|
||||
cssmin: { |
|
||||
target: { |
|
||||
files: [{ |
|
||||
expand: true, |
|
||||
flatten: true, |
|
||||
src: [ |
|
||||
'<%= styleDir %>/css/main.css', |
|
||||
'node_modules/codemirror/lib/codemirror.css', |
|
||||
'node_modules/codemirror/theme/hopscotch.css' |
|
||||
], |
|
||||
dest: '<%= builtDir %>', |
|
||||
ext: '.min.css' |
|
||||
}] |
|
||||
} |
|
||||
}, |
|
||||
|
|
||||
concat: { |
|
||||
css: { |
|
||||
src: ['<%= builtDir %>/*.min.css'], |
|
||||
dest: '<%= builtDir %>/css/grapes.min.css' |
|
||||
} |
|
||||
}, |
|
||||
|
|
||||
mocha: { |
|
||||
test: { |
|
||||
src: ['test/index.html'], |
|
||||
options: { log: true, }, |
|
||||
}, |
|
||||
}, |
|
||||
|
|
||||
connect: { |
|
||||
server: { |
|
||||
options: { |
|
||||
port: port, |
|
||||
open: true |
|
||||
} |
|
||||
}, |
|
||||
}, |
|
||||
/* |
|
||||
bowercopy: { |
|
||||
options: { |
|
||||
srcPrefix: 'bower_components' |
|
||||
}, |
|
||||
scripts: { |
|
||||
options: { |
|
||||
destPrefix: 'vendor' |
|
||||
}, |
|
||||
files: { |
|
||||
'almond/almond.js' : 'almond/almond.js', |
|
||||
'jquery/jquery.js' : 'jquery/dist/jquery.min.js', |
|
||||
'underscore/underscore.js' : 'underscore/underscore-min.js', |
|
||||
'backbone/backbone.js' : 'backbone/backbone-min.js', |
|
||||
'backbone-undo/backbone-undo.js' : 'Backbone.Undo/Backbone.Undo.js', |
|
||||
'keymaster/keymaster.js' : 'keymaster/keymaster.js', |
|
||||
'require/require.js' : 'requirejs/require.js', |
|
||||
'require-text/text.js' : 'requirejs-text/text.js', |
|
||||
'spectrum/spectrum.js' : 'spectrum/spectrum.js', |
|
||||
'codemirror' : 'codemirror', |
|
||||
'codemirror-formatting' : 'codemirror-formatting/formatting.js', |
|
||||
'mocha' : 'mocha', |
|
||||
'chai' : 'chai/chai.js', |
|
||||
'sinon' : 'sinonjs/sinon.js', |
|
||||
}, |
|
||||
} |
|
||||
}, |
|
||||
*/ |
|
||||
watch: { |
|
||||
script: { |
|
||||
files: [ '<%= appDir %>/**/*.js' ], |
|
||||
tasks: ['jshint'] |
|
||||
}, |
|
||||
css: { |
|
||||
files: '**/*.scss', |
|
||||
tasks: ['sass'] |
|
||||
}, |
|
||||
test: { |
|
||||
files: ['test/specs/**/*.js'], |
|
||||
tasks: ['mocha'], |
|
||||
//options: { livereload: true }, //default port 35729
|
|
||||
} |
|
||||
}, |
|
||||
|
|
||||
clean: { |
|
||||
all: ["<%= builtDir %>/*", "!<%= builtDir %>/grapes.min.js", "!<%= builtDir %>/css"] |
|
||||
}, |
|
||||
|
|
||||
copy: { |
|
||||
fonts: { |
|
||||
cwd: '<%= styleDir %>/fonts', |
|
||||
src: '**/*', |
|
||||
dest: '<%= builtDir %>/fonts', |
|
||||
expand: true |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
}); |
|
||||
|
|
||||
/** |
|
||||
* Have to copy require configs cause r.js will try to load them from the path indicated inside |
|
||||
* main.js file. This is the only way I have found to do it |
|
||||
* */ |
|
||||
grunt.registerTask('before-rjs', function() { |
|
||||
if(grunt.file.exists(buildPath)) |
|
||||
grunt.file.delete(buildPath); |
|
||||
grunt.file.mkdir(buildPath); |
|
||||
grunt.file.copy(appPath + '/' + configPath, buildPath + '/' + appPath + '/' + configPath); |
|
||||
}); |
|
||||
|
|
||||
grunt.registerTask('webfont-custom', function() { |
|
||||
var dir = './styles/fonts/'; |
|
||||
var destName = 'main-fonts'; |
|
||||
var donePromise = this.async(); |
|
||||
var svg2ttf = { |
|
||||
cmd: 'svg2ttf', |
|
||||
args: [dir + destName + '.svg', dir + destName + '.ttf'], |
|
||||
}; |
|
||||
var ttf2woff = { |
|
||||
cmd: 'ttf2woff', |
|
||||
args: [dir + destName + '.ttf', dir + destName + '.woff'], |
|
||||
}; |
|
||||
var ttf2woff2 = { |
|
||||
cmd: 'cat', |
|
||||
//args: [dir + destName + '.ttf', dir + destName + '.woff2'],
|
|
||||
args: [dir + destName + '.ttf', '|', 'ttf2woff2', '>>', dir + destName + '.woff2'], |
|
||||
}; |
|
||||
var ttf2eot = { |
|
||||
cmd: 'ttf2eot', |
|
||||
args: [dir + destName + '.ttf', dir + destName + '.eot'], |
|
||||
}; |
|
||||
grunt.util.spawn(svg2ttf, function done(error, result, code) { |
|
||||
grunt.log.ok('.ttf file created'); |
|
||||
|
|
||||
grunt.util.spawn(ttf2woff, function done(error, result, code) { |
|
||||
grunt.log.ok('.woff file created'); |
|
||||
|
|
||||
grunt.util.spawn(ttf2eot, function done(error, result, code) { |
|
||||
grunt.log.ok('.eot file created'); |
|
||||
donePromise(); |
|
||||
/* |
|
||||
grunt.util.spawn(ttf2woff2, function done(error, result, code) { |
|
||||
grunt.log.ok('.woff2 file created'); |
|
||||
donePromise(); |
|
||||
}); |
|
||||
*/ |
|
||||
}); |
|
||||
}); |
|
||||
}); |
|
||||
|
|
||||
}); |
|
||||
|
|
||||
grunt.registerTask('dev', ['connect', 'watch']); |
|
||||
|
|
||||
grunt.registerTask('test', ['jshint', 'mocha']); |
|
||||
|
|
||||
grunt.registerTask('build:fonts', ['webfont-custom']); |
|
||||
|
|
||||
grunt.registerTask('build', ['jshint', 'sass', 'before-rjs', 'requirejs', 'uglify', 'cssmin', 'concat', 'clean', 'copy']); |
|
||||
|
|
||||
grunt.registerTask('default', ['dev']); |
|
||||
|
|
||||
}; |
|
||||
Loading…
Reference in new issue