mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Release: Use downloadBuilder to build pre/cdn packages instead of our grunt tasks
This commit is contained in:
parent
e591a7a9af
commit
a8897d4c72
119
Gruntfile.js
119
Gruntfile.js
@ -153,9 +153,7 @@ function createBanner( files ) {
|
|||||||
grunt.initConfig({
|
grunt.initConfig({
|
||||||
pkg: grunt.file.readJSON("package.json"),
|
pkg: grunt.file.readJSON("package.json"),
|
||||||
files: {
|
files: {
|
||||||
dist: "<%= pkg.name %>-<%= pkg.version %>",
|
dist: "<%= pkg.name %>-<%= pkg.version %>"
|
||||||
cdn: "<%= pkg.name %>-<%= pkg.version %>-cdn",
|
|
||||||
themes: "<%= pkg.name %>-themes-<%= pkg.version %>"
|
|
||||||
},
|
},
|
||||||
compare_size: compareFiles,
|
compare_size: compareFiles,
|
||||||
concat: {
|
concat: {
|
||||||
@ -196,122 +194,10 @@ grunt.initConfig({
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
copy: {
|
copy: {
|
||||||
dist: {
|
|
||||||
src: [
|
|
||||||
"AUTHORS.txt",
|
|
||||||
"jquery-*.js",
|
|
||||||
"MIT-LICENSE.txt",
|
|
||||||
"README.md",
|
|
||||||
"Gruntfile.js",
|
|
||||||
"package.json",
|
|
||||||
"*.jquery.json",
|
|
||||||
"ui/**/*",
|
|
||||||
"ui/.jshintrc",
|
|
||||||
"demos/**/*",
|
|
||||||
"themes/**/*",
|
|
||||||
"external/**/*",
|
|
||||||
"tests/**/*"
|
|
||||||
],
|
|
||||||
renames: {
|
|
||||||
"dist/jquery-ui.js": "ui/jquery-ui.js",
|
|
||||||
"dist/jquery-ui.min.js": "ui/minified/jquery-ui.min.js",
|
|
||||||
"dist/i18n/jquery-ui-i18n.js": "ui/i18n/jquery-ui-i18n.js",
|
|
||||||
"dist/i18n/jquery-ui-i18n.min.js": "ui/minified/i18n/jquery-ui-i18n.min.js",
|
|
||||||
"dist/jquery-ui.css": "themes/base/jquery-ui.css",
|
|
||||||
"dist/jquery-ui.min.css": "themes/base/minified/jquery-ui.min.css"
|
|
||||||
},
|
|
||||||
dest: "dist/<%= files.dist %>"
|
|
||||||
},
|
|
||||||
dist_min: {
|
|
||||||
src: "dist/minified/**/*",
|
|
||||||
strip: /^dist/,
|
|
||||||
dest: "dist/<%= files.dist %>/ui"
|
|
||||||
},
|
|
||||||
dist_css_min: {
|
|
||||||
src: "dist/themes/base/minified/*.css",
|
|
||||||
strip: /^dist/,
|
|
||||||
dest: "dist/<%= files.dist %>"
|
|
||||||
},
|
|
||||||
dist_units_images: {
|
dist_units_images: {
|
||||||
src: "themes/base/images/*",
|
src: "themes/base/images/*",
|
||||||
strip: /^themes\/base\//,
|
strip: /^themes\/base\//,
|
||||||
dest: "dist/"
|
dest: "dist/"
|
||||||
},
|
|
||||||
dist_min_images: {
|
|
||||||
src: "themes/base/images/*",
|
|
||||||
strip: /^themes\/base\//,
|
|
||||||
dest: "dist/<%= files.dist %>/themes/base/minified"
|
|
||||||
},
|
|
||||||
cdn: {
|
|
||||||
src: [
|
|
||||||
"AUTHORS.txt",
|
|
||||||
"MIT-LICENSE.txt",
|
|
||||||
"ui/*.js",
|
|
||||||
"package.json"
|
|
||||||
],
|
|
||||||
renames: {
|
|
||||||
"dist/jquery-ui.js": "jquery-ui.js",
|
|
||||||
"dist/jquery-ui.min.js": "jquery-ui.min.js",
|
|
||||||
"dist/i18n/jquery-ui-i18n.js": "i18n/jquery-ui-i18n.js",
|
|
||||||
"dist/i18n/jquery-ui-i18n.min.js": "i18n/jquery-ui-i18n.min.js"
|
|
||||||
},
|
|
||||||
dest: "dist/<%= files.cdn %>"
|
|
||||||
},
|
|
||||||
cdn_i18n: {
|
|
||||||
src: "ui/i18n/jquery.ui.datepicker-*.js",
|
|
||||||
strip: "ui/",
|
|
||||||
dest: "dist/<%= files.cdn %>"
|
|
||||||
},
|
|
||||||
cdn_i18n_min: {
|
|
||||||
src: "dist/minified/i18n/jquery.ui.datepicker-*.js",
|
|
||||||
strip: "dist/minified",
|
|
||||||
dest: "dist/<%= files.cdn %>"
|
|
||||||
},
|
|
||||||
cdn_min: {
|
|
||||||
src: "dist/minified/*.js",
|
|
||||||
strip: /^dist\/minified/,
|
|
||||||
dest: "dist/<%= files.cdn %>/ui"
|
|
||||||
},
|
|
||||||
cdn_themes: {
|
|
||||||
src: "dist/<%= files.themes %>/themes/**/*",
|
|
||||||
strip: "dist/<%= files.themes %>",
|
|
||||||
dest: "dist/<%= files.cdn %>"
|
|
||||||
},
|
|
||||||
themes: {
|
|
||||||
src: [
|
|
||||||
"AUTHORS.txt",
|
|
||||||
"MIT-LICENSE.txt",
|
|
||||||
"package.json"
|
|
||||||
],
|
|
||||||
dest: "dist/<%= files.themes %>"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
zip: {
|
|
||||||
dist: {
|
|
||||||
src: "<%= files.dist %>",
|
|
||||||
dest: "<%= files.dist %>.zip"
|
|
||||||
},
|
|
||||||
cdn: {
|
|
||||||
src: "<%= files.cdn %>",
|
|
||||||
dest: "<%= files.cdn %>.zip"
|
|
||||||
},
|
|
||||||
themes: {
|
|
||||||
src: "<%= files.themes %>",
|
|
||||||
dest: "<%= files.themes %>.zip"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
md5: {
|
|
||||||
dist: {
|
|
||||||
src: "dist/<%= files.dist %>",
|
|
||||||
dest: "dist/<%= files.dist %>/MANIFEST"
|
|
||||||
},
|
|
||||||
cdn: {
|
|
||||||
src: "dist/<%= files.cdn %>",
|
|
||||||
dest: "dist/<%= files.cdn %>/MANIFEST"
|
|
||||||
},
|
|
||||||
themes: {
|
|
||||||
src: "dist/<%= files.themes %>",
|
|
||||||
dest: "dist/<%= files.themes %>/MANIFEST"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
qunit: {
|
qunit: {
|
||||||
@ -363,8 +249,5 @@ grunt.registerTask( "test", [ "qunit" ] );
|
|||||||
grunt.registerTask( "sizer", [ "concat:ui", "uglify:main", "compare_size:all" ] );
|
grunt.registerTask( "sizer", [ "concat:ui", "uglify:main", "compare_size:all" ] );
|
||||||
grunt.registerTask( "sizer_all", [ "concat:ui", "uglify", "compare_size" ] );
|
grunt.registerTask( "sizer_all", [ "concat:ui", "uglify", "compare_size" ] );
|
||||||
grunt.registerTask( "build", [ "concat", "uglify", "cssmin", "copy:dist_units_images" ] );
|
grunt.registerTask( "build", [ "concat", "uglify", "cssmin", "copy:dist_units_images" ] );
|
||||||
grunt.registerTask( "release", "clean build copy:dist copy:dist_min copy:dist_min_images copy:dist_css_min md5:dist zip:dist".split( " " ) );
|
|
||||||
grunt.registerTask( "release_themes", "release generate_themes copy:themes md5:themes zip:themes".split( " " ) );
|
|
||||||
grunt.registerTask( "release_cdn", "release_themes copy:cdn copy:cdn_min copy:cdn_i18n copy:cdn_i18n_min copy:cdn_themes md5:cdn zip:cdn".split( " " ) );
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -8,8 +8,9 @@
|
|||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var baseDir, repoDir, prevVersion, newVersion, nextVersion, tagTime, preRelease, repo,
|
var baseDir, downloadBuilder, repoDir, prevVersion, newVersion, nextVersion, tagTime, preRelease, repo,
|
||||||
fs = require( "fs" ),
|
fs = require( "fs" ),
|
||||||
|
path = require( "path" ),
|
||||||
rnewline = /\r?\n/,
|
rnewline = /\r?\n/,
|
||||||
branch = "master";
|
branch = "master";
|
||||||
|
|
||||||
@ -25,7 +26,8 @@ walk([
|
|||||||
confirm,
|
confirm,
|
||||||
|
|
||||||
section( "building release" ),
|
section( "building release" ),
|
||||||
buildRelease,
|
buildReleaseBranch,
|
||||||
|
buildPackage,
|
||||||
|
|
||||||
section( "pushing tag" ),
|
section( "pushing tag" ),
|
||||||
confirmReview,
|
confirmReview,
|
||||||
@ -66,13 +68,6 @@ function cloneRepo() {
|
|||||||
if ( exec( "npm install" ).code !== 0 ) {
|
if ( exec( "npm install" ).code !== 0 ) {
|
||||||
abort( "Error installing dependencies." );
|
abort( "Error installing dependencies." );
|
||||||
}
|
}
|
||||||
// We need download.jqueryui.com in order to generate themes.
|
|
||||||
// We only generate themes for stable releases.
|
|
||||||
if ( !preRelease ) {
|
|
||||||
if ( exec( "npm install download.jqueryui.com" ).code !== 0 ) {
|
|
||||||
abort( "Error installing dependencies." );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
echo();
|
echo();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,9 +130,8 @@ function getVersions() {
|
|||||||
echo( "After the release, the version will be " + nextVersion.cyan + "." );
|
echo( "After the release, the version will be " + nextVersion.cyan + "." );
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildRelease() {
|
function buildReleaseBranch() {
|
||||||
var pkg,
|
var pkg;
|
||||||
releaseTask = preRelease ? "release" : "release_cdn";
|
|
||||||
|
|
||||||
echo( "Creating " + "release".cyan + " branch..." );
|
echo( "Creating " + "release".cyan + " branch..." );
|
||||||
git( "checkout -b release", "Error creating release branch." );
|
git( "checkout -b release", "Error creating release branch." );
|
||||||
@ -158,12 +152,6 @@ function buildRelease() {
|
|||||||
}
|
}
|
||||||
echo();
|
echo();
|
||||||
|
|
||||||
echo( "Building release..." );
|
|
||||||
if ( exec( "grunt " + releaseTask ).code !== 0 ) {
|
|
||||||
abort( "Error building release." );
|
|
||||||
}
|
|
||||||
echo();
|
|
||||||
|
|
||||||
echo( "Committing release artifacts..." );
|
echo( "Committing release artifacts..." );
|
||||||
git( "add *.jquery.json", "Error adding manifest files to git." );
|
git( "add *.jquery.json", "Error adding manifest files to git." );
|
||||||
git( "commit -am 'Tagging the " + newVersion + " release.'",
|
git( "commit -am 'Tagging the " + newVersion + " release.'",
|
||||||
@ -175,6 +163,175 @@ function buildRelease() {
|
|||||||
tagTime = git( "log -1 --format='%ad'", "Error getting tag timestamp." ).trim();
|
tagTime = git( "log -1 --format='%ad'", "Error getting tag timestamp." ).trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function buildPackage( callback ) {
|
||||||
|
if( preRelease ) {
|
||||||
|
return buildPreReleasePackage( callback );
|
||||||
|
} else {
|
||||||
|
return buildCDNPackage( callback );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildPreReleasePackage( callback ) {
|
||||||
|
var build, files, jqueryUi, packer, target, targetZip;
|
||||||
|
|
||||||
|
echo( "Build pre-release Package" );
|
||||||
|
|
||||||
|
jqueryUi = new downloadBuilder.JqueryUi( path.resolve( "." ) );
|
||||||
|
build = new downloadBuilder.Builder( jqueryUi, ":all:" );
|
||||||
|
packer = new downloadBuilder.Packer( build, null, {
|
||||||
|
addTests: true,
|
||||||
|
bundleSuffix: "",
|
||||||
|
skipDocs: true,
|
||||||
|
skipTheme: true
|
||||||
|
});
|
||||||
|
target = "../" + jqueryUi.pkg.name + "-" + jqueryUi.pkg.version;
|
||||||
|
targetZip = target + ".zip";
|
||||||
|
|
||||||
|
return walk([
|
||||||
|
function( callback ) {
|
||||||
|
echo( "Building release files" );
|
||||||
|
packer.pack(function( error, _files ) {
|
||||||
|
if( error ) {
|
||||||
|
abort( error.stack );
|
||||||
|
}
|
||||||
|
files = _files.map(function( file ) {
|
||||||
|
|
||||||
|
// Strip first path
|
||||||
|
file.path = file.path.replace( /^[^\/]*\//, "" );
|
||||||
|
return file;
|
||||||
|
|
||||||
|
}).filter(function( file ) {
|
||||||
|
|
||||||
|
// Filter development-bundle content only
|
||||||
|
return (/^development-bundle/).test( file.path );
|
||||||
|
}).map(function( file ) {
|
||||||
|
|
||||||
|
// Strip development-bundle
|
||||||
|
file.path = file.path.replace( /^development-bundle\//, "" );
|
||||||
|
return file;
|
||||||
|
|
||||||
|
});
|
||||||
|
return callback();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
function() {
|
||||||
|
downloadBuilder.util.createZip( files, targetZip, function( error ) {
|
||||||
|
if ( error ) {
|
||||||
|
abort( error.stack );
|
||||||
|
}
|
||||||
|
echo( "Built zip package at " + path.relative( "../..", targetZip ).cyan );
|
||||||
|
return callback();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildCDNPackage( callback ) {
|
||||||
|
var build, output, target, targetZip,
|
||||||
|
add = function( file ) {
|
||||||
|
output.push( file );
|
||||||
|
},
|
||||||
|
bundleFiles = [],
|
||||||
|
jqueryUi = new downloadBuilder.JqueryUi( path.resolve( "." ) ),
|
||||||
|
themeGallery = downloadBuilder.themeGallery( jqueryUi );
|
||||||
|
|
||||||
|
echo( "Build CDN Package" );
|
||||||
|
|
||||||
|
build = new downloadBuilder.Builder( jqueryUi, ":all:" );
|
||||||
|
output = [];
|
||||||
|
target = "../" + jqueryUi.pkg.name + "-" + jqueryUi.pkg.version + "-cdn";
|
||||||
|
targetZip = target + ".zip";
|
||||||
|
|
||||||
|
[ "AUTHORS.txt", "MIT-LICENSE.txt", "package.json" ].map(function( name ) {
|
||||||
|
return build.get( name );
|
||||||
|
}).forEach( add );
|
||||||
|
|
||||||
|
// "ui/*.js"
|
||||||
|
build.componentFiles.filter(function( file ) {
|
||||||
|
return (/^ui\//).test( file.path );
|
||||||
|
}).forEach( add );
|
||||||
|
|
||||||
|
// "ui/*.min.js"
|
||||||
|
build.componentMinFiles.filter(function( file ) {
|
||||||
|
return (/^ui\//).test( file.path );
|
||||||
|
}).forEach( add );
|
||||||
|
|
||||||
|
// "i18n/*.js"
|
||||||
|
build.i18nFiles.rename( /^ui\//, "" ).forEach( add );
|
||||||
|
build.i18nMinFiles.rename( /^ui\//, "" ).forEach( add );
|
||||||
|
build.bundleI18n.into( "i18n/" ).forEach( add );
|
||||||
|
build.bundleI18nMin.into( "i18n/" ).forEach( add );
|
||||||
|
|
||||||
|
build.bundleJs.forEach( add );
|
||||||
|
build.bundleJsMin.forEach( add );
|
||||||
|
|
||||||
|
walk( themeGallery.map(function( theme ) {
|
||||||
|
return function( callback ) {
|
||||||
|
var themeCssOnlyRe, themeDirRe,
|
||||||
|
folderName = theme.folderName(),
|
||||||
|
packer = new downloadBuilder.Packer( build, theme, {
|
||||||
|
skipDocs: true
|
||||||
|
});
|
||||||
|
// TODO improve code by using custom packer instead of download packer (Packer)
|
||||||
|
themeCssOnlyRe = new RegExp( "development-bundle/themes/" + folderName + "/jquery.ui.theme.css" );
|
||||||
|
themeDirRe = new RegExp( "css/" + folderName );
|
||||||
|
packer.pack(function( error, files ) {
|
||||||
|
if ( error ) {
|
||||||
|
abort( error.stack );
|
||||||
|
}
|
||||||
|
// Add theme files.
|
||||||
|
files
|
||||||
|
// Pick only theme files we need on the bundle.
|
||||||
|
.filter(function( file ) {
|
||||||
|
if ( themeCssOnlyRe.test( file.path ) || themeDirRe.test( file.path ) ) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
})
|
||||||
|
// Convert paths the way bundle needs
|
||||||
|
.map(function( file ) {
|
||||||
|
file.path = file.path
|
||||||
|
|
||||||
|
// Remove initial package name eg. "jquery-ui-1.10.0.custom"
|
||||||
|
.split( "/" ).slice( 1 ).join( "/" )
|
||||||
|
|
||||||
|
.replace( /development-bundle\/themes/, "css" )
|
||||||
|
.replace( /css/, "themes" )
|
||||||
|
|
||||||
|
// Make jquery-ui-1.10.0.custom.css into jquery-ui.css, or jquery-ui-1.10.0.custom.min.css into jquery-ui.min.css
|
||||||
|
.replace( /jquery-ui-.*?(\.min)*\.css/, "jquery-ui$1.css" );
|
||||||
|
|
||||||
|
return file;
|
||||||
|
}).forEach( add );
|
||||||
|
return callback();
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}).concat([function() {
|
||||||
|
var crypto = require( "crypto" );
|
||||||
|
|
||||||
|
// Create MD5 manifest
|
||||||
|
output.push({
|
||||||
|
path: "MANIFEST",
|
||||||
|
data: output.sort(function( a, b ) {
|
||||||
|
return a.path.localeCompare( b.path );
|
||||||
|
}).map(function( file ) {
|
||||||
|
var md5 = crypto.createHash( "md5" );
|
||||||
|
md5.update( file.data );
|
||||||
|
return file.path + " " + md5.digest( "hex" );
|
||||||
|
}).join( "\n" )
|
||||||
|
});
|
||||||
|
|
||||||
|
downloadBuilder.util.createZip( output, targetZip, function( error ) {
|
||||||
|
if ( error ) {
|
||||||
|
abort( error.stack );
|
||||||
|
}
|
||||||
|
echo( "Built zip CDN package at " + path.relative( "../..", targetZip ).cyan );
|
||||||
|
return callback();
|
||||||
|
});
|
||||||
|
}]));
|
||||||
|
}
|
||||||
|
|
||||||
function pushRelease() {
|
function pushRelease() {
|
||||||
echo( "Pushing release to GitHub..." );
|
echo( "Pushing release to GitHub..." );
|
||||||
git( "push --tags", "Error pushing tags to GitHub." );
|
git( "push --tags", "Error pushing tags to GitHub." );
|
||||||
@ -419,7 +576,7 @@ function _bootstrap( fn ) {
|
|||||||
fs.mkdirSync( baseDir );
|
fs.mkdirSync( baseDir );
|
||||||
|
|
||||||
console.log( "Installing dependencies..." );
|
console.log( "Installing dependencies..." );
|
||||||
require( "child_process" ).exec( "npm install shelljs colors", function( error ) {
|
require( "child_process" ).exec( "npm install shelljs colors download.jqueryui.com", function( error ) {
|
||||||
if ( error ) {
|
if ( error ) {
|
||||||
console.log( error );
|
console.log( error );
|
||||||
return process.exit( 1 );
|
return process.exit( 1 );
|
||||||
@ -427,6 +584,7 @@ function _bootstrap( fn ) {
|
|||||||
|
|
||||||
require( "shelljs/global" );
|
require( "shelljs/global" );
|
||||||
require( "colors" );
|
require( "colors" );
|
||||||
|
downloadBuilder = require( "download.jqueryui.com" );
|
||||||
|
|
||||||
fn();
|
fn();
|
||||||
});
|
});
|
||||||
|
@ -132,85 +132,6 @@ grunt.registerMultiTask( "copy", "Copy files to destination folder and replace @
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
grunt.registerMultiTask( "zip", "Create a zip file for release", function() {
|
|
||||||
var done = this.async(),
|
|
||||||
dest = this.data.dest;
|
|
||||||
grunt.util.spawn({
|
|
||||||
cmd: "zip",
|
|
||||||
args: [ "-r", dest, this.data.src ],
|
|
||||||
opts: {
|
|
||||||
cwd: "dist"
|
|
||||||
}
|
|
||||||
}, function( err ) {
|
|
||||||
if ( err ) {
|
|
||||||
grunt.log.error( err );
|
|
||||||
done();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
grunt.log.writeln( "Zipped " + dest );
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
grunt.registerMultiTask( "md5", "Create list of md5 hashes for CDN uploads", function() {
|
|
||||||
// remove dest file before creating it, to make sure itself is not included
|
|
||||||
if ( fs.existsSync( this.data.dest ) ) {
|
|
||||||
fs.unlinkSync( this.data.dest );
|
|
||||||
}
|
|
||||||
var crypto = require( "crypto" ),
|
|
||||||
dir = this.filesSrc + "/",
|
|
||||||
hashes = [];
|
|
||||||
expandFiles( dir + "**/*" ).forEach(function( fileName ) {
|
|
||||||
var hash = crypto.createHash( "md5" );
|
|
||||||
hash.update( grunt.file.read( fileName, "ascii" ) );
|
|
||||||
hashes.push( fileName.replace( dir, "" ) + " " + hash.digest( "hex" ) );
|
|
||||||
});
|
|
||||||
grunt.file.write( this.data.dest, hashes.join( "\n" ) + "\n" );
|
|
||||||
grunt.log.writeln( "Wrote " + this.data.dest + " with " + hashes.length + " hashes" );
|
|
||||||
});
|
|
||||||
|
|
||||||
grunt.registerTask( "generate_themes", function() {
|
|
||||||
var download, done,
|
|
||||||
distFolder = "dist/" + grunt.template.process( grunt.config( "files.dist" ), grunt.config() ),
|
|
||||||
target = "dist/" + grunt.template.process( grunt.config( "files.themes" ), grunt.config() ) + "/";
|
|
||||||
|
|
||||||
try {
|
|
||||||
require.resolve( "download.jqueryui.com" );
|
|
||||||
} catch( error ) {
|
|
||||||
throw new Error( "You need to manually install download.jqueryui.com for this task to work" );
|
|
||||||
}
|
|
||||||
|
|
||||||
download = require( "download.jqueryui.com" )({
|
|
||||||
config: {
|
|
||||||
"jqueryUi": {
|
|
||||||
"stable": { "path": path.resolve( __dirname + "/../../" + distFolder ) }
|
|
||||||
},
|
|
||||||
"jquery": "skip"
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
done = this.async();
|
|
||||||
download.buildThemesBundle(function( error, files ) {
|
|
||||||
if ( error ) {
|
|
||||||
grunt.log.error( error );
|
|
||||||
return done( false );
|
|
||||||
}
|
|
||||||
|
|
||||||
done(
|
|
||||||
files.every(function( file ) {
|
|
||||||
try {
|
|
||||||
grunt.file.write( target + file.path, file.data );
|
|
||||||
} catch( err ) {
|
|
||||||
grunt.log.error( err );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}) && grunt.log.writeln( "Generated at " + target )
|
|
||||||
);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
grunt.registerTask( "clean", function() {
|
grunt.registerTask( "clean", function() {
|
||||||
require( "rimraf" ).sync( "dist" );
|
require( "rimraf" ).sync( "dist" );
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user