Browse Source

Simpler gulp4 port

pull/6983/head
Jack 5 years ago
parent
commit
563ab83895
25 changed files with 580 additions and 445 deletions
  1. 37
      gulpfile.js
  2. 729
      package-lock.json
  3. 7
      package.json
  4. 5
      tasks/admin/components/create.js
  5. 5
      tasks/admin/distributions/create.js
  6. 7
      tasks/admin/publish.js
  7. 8
      tasks/admin/release.js
  8. 35
      tasks/build.js
  9. 13
      tasks/build/assets.js
  10. 18
      tasks/build/css.js
  11. 13
      tasks/build/javascript.js
  12. 13
      tasks/check-install.js
  13. 12
      tasks/clean.js
  14. 20
      tasks/collections/admin.js
  15. 6
      tasks/collections/build.js
  16. 4
      tasks/collections/rtl.js
  17. 1
      tasks/config/defaults.js
  18. 2
      tasks/config/npm/gulpfile.js
  19. 11
      tasks/docs/build.js
  20. 11
      tasks/docs/serve.js
  21. 18
      tasks/install.js
  22. 11
      tasks/rtl/build.js
  23. 12
      tasks/rtl/watch.js
  24. 12
      tasks/version.js
  25. 15
      tasks/watch.js

37
gulpfile.js

@ -3,7 +3,7 @@
*******************************/
var
gulp = require('gulp-help')(require('gulp')),
gulp = require('gulp'),
// read user config to know what task to load
config = require('./tasks/config/user'),
@ -34,27 +34,30 @@ var
watchRTL = require('./tasks/rtl/watch')
;
/* Simple Compatibility with Gulp 3 */
gulp.start = function(name) {
gulp.task(name)();
}
/*******************************
Tasks
*******************************/
gulp.task('default', false, [
'check-install'
]);
gulp.task('watch', watch);
gulp.task('build', build);
gulp.task('build-javascript', buildJS);
gulp.task('build-css', buildCSS);
gulp.task('build-assets',buildAssets);
gulp.task('watch', 'Watch for site/theme changes', watch);
gulp.task('clean', clean);
gulp.task('version', version);
gulp.task('build', 'Builds all files from source', build);
gulp.task('build-javascript', 'Builds all javascript from source', buildJS);
gulp.task('build-css', 'Builds all css from source', buildCSS);
gulp.task('build-assets', 'Copies all assets from source', buildAssets);
gulp.task('install', install);
gulp.task('check-install', checkInstall);
gulp.task('clean', 'Clean dist folder', clean);
gulp.task('version', 'Displays current version of Semantic', version);
gulp.task('install', 'Runs set-up', install);
gulp.task('check-install', 'Displays current version of Semantic', checkInstall);
//gulp.task('default', ['check-install']);
/*--------------
Docs
@ -65,8 +68,8 @@ gulp.task('check-install', 'Displays current version of Semantic', checkInstall)
https://github.com/Semantic-Org/Semantic-UI-Docs/
*/
gulp.task('serve-docs', 'Serve file changes to SUI Docs', serveDocs);
gulp.task('build-docs', 'Build all files and add to SUI Docs', buildDocs);
gulp.task('serve-docs', serveDocs);
gulp.task('build-docs', buildDocs);
/*--------------
@ -74,8 +77,8 @@ gulp.task('build-docs', 'Build all files and add to SUI Docs', buildDocs);
---------------*/
if(config.rtl) {
gulp.task('watch-rtl', 'Watch files as RTL', watchRTL);
gulp.task('build-rtl', 'Build all files as RTL', buildRTL);
gulp.task('watch-rtl', watchRTL);
gulp.task('build-rtl', buildRTL);
}
/* Admin Tasks */

729
package-lock.json
File diff suppressed because it is too large
View File

7
package.json

@ -52,7 +52,7 @@
"better-console": "*",
"del": "^3.0.0",
"extend": "^3.0.2",
"gulp": "^3.9.1",
"gulp": "^4.0.2",
"gulp-autoprefixer": "^6.0.0",
"gulp-chmod": "^2.0.0",
"gulp-clone": "^2.0.1",
@ -62,9 +62,8 @@
"gulp-dedupe": "0.0.2",
"gulp-flatten": "^0.4.0",
"gulp-header": "^2.0.5",
"gulp-help": "^1.6.1",
"gulp-if": "^2.0.2",
"gulp-json-editor": "^2.4.2",
"gulp-json-editor": "^2.5.2",
"gulp-less": "^4.0.1",
"gulp-clean-css": "^3.10.0",
"gulp-notify": "^3.2.0",
@ -76,7 +75,7 @@
"gulp-rtlcss": "^1.3.0",
"gulp-uglify": "^3.0.1",
"gulp-watch": "^5.0.1",
"jquery": "^3.3.1",
"jquery": "^3.4.1",
"map-stream": "^0.1.0",
"merge-stream": "^1.0.0",
"mkdirp": "^0.5.1",

5
tasks/admin/components/create.js

@ -22,7 +22,6 @@ var
del = require('del'),
fs = require('fs'),
path = require('path'),
runSequence = require('run-sequence'),
// admin dependencies
concatFileNames = require('gulp-concat-filenames'),
@ -310,7 +309,7 @@ module.exports = function(callback) {
// synchronous tasks in orchestrator? I think not
gulp.task(task.all, false, function(callback) {
runSequence([
gulp.series([
task.repo,
task.npm,
task.bower,
@ -327,5 +326,5 @@ module.exports = function(callback) {
})(component);
}
runSequence(tasks, callback);
gulp.series(tasks, callback);
};

5
tasks/admin/distributions/create.js

@ -17,7 +17,6 @@ var
del = require('del'),
fs = require('fs'),
path = require('path'),
runSequence = require('run-sequence'),
mergeStream = require('merge-stream'),
// admin dependencies
@ -215,5 +214,5 @@ module.exports = function(callback) {
})(distribution);
}
runSequence(tasks, callback);
};
gulp.series(tasks, callback);
};

7
tasks/admin/publish.js

@ -9,17 +9,14 @@
*/
var
runSequence = require('run-sequence')
;
/* Release All */
module.exports = function(callback) {
runSequence(
gulp.series(
'update distributions', // commit less/css versions to github
'update components', // commit components to github
callback
);
};
};

8
tasks/admin/release.js

@ -10,14 +10,10 @@
*/
var
runSequence = require('run-sequence')
;
/* Release All */
module.exports = function(callback) {
runSequence(
gulp.series(
//'build', // build Semantic
'init distributions', // sync with current github version
'create distributions', // update each repo with changes from master repo
@ -26,4 +22,4 @@ module.exports = function(callback) {
callback
);
};
};

35
tasks/build.js

@ -4,26 +4,22 @@
var
// dependencies
gulp = require('gulp-help')(require('gulp')),
runSequence = require('run-sequence'),
gulp = require('gulp'),
// config
config = require('./config/user'),
install = require('./config/project/install'),
config = require('./config/user'),
install = require('./config/project/install'),
// task sequence
tasks = []
;
tasks = [],
{series, parallel} = gulp,
// sub-tasks
if(config.rtl) {
require('./collections/rtl')(gulp);
}
require('./collections/build')(gulp);
build
;
module.exports = function(callback) {
build = function(callback) {
console.info('Building Semantic');
@ -46,5 +42,18 @@ module.exports = function(callback) {
tasks.push('build-css');
tasks.push('build-assets');
runSequence(tasks, callback);
tasks = tasks.map(task => {
gulp.task(task)(callback);
return (taskDone) => {
taskDone();
};
});
series(parallel(tasks), callback);
};
/* Export with Metadata */
build.displayName = 'build';
build.description = 'Build SUI from source';
module.exports = build;

13
tasks/build/assets.js

@ -19,10 +19,12 @@ var
output = config.paths.output,
source = config.paths.source,
log = tasks.log
log = tasks.log,
buildAssets
;
module.exports = function(callback) {
buildAssets = function(callback) {
console.info('Building assets');
@ -32,4 +34,9 @@ module.exports = function(callback) {
.pipe(gulp.dest(output.themes))
;
};
};
/* Export with Metadata */
buildAssets.displayName = 'build-css';
buildAssets.description = 'Builds all css from source';
module.exports = buildAssets;

18
tasks/build/css.js

@ -21,7 +21,6 @@ var
print = require('gulp-print').default,
rename = require('gulp-rename'),
replace = require('gulp-replace'),
runSequence = require('run-sequence'),
// config
config = require('../config/user'),
@ -37,13 +36,15 @@ var
banner = tasks.banner,
comments = tasks.regExp.comments,
log = tasks.log,
settings = tasks.settings
settings = tasks.settings,
buildCSS
;
// add internal tasks (concat release)
require('../collections/internal')(gulp);
module.exports = function(callback) {
buildCSS = function(callback) {
var
tasksCompleted = 0,
@ -91,7 +92,8 @@ module.exports = function(callback) {
.pipe(gulp.dest(output.uncompressed))
.pipe(print(log.created))
.on('end', function() {
runSequence('package uncompressed css', maybeCallback);
gulp.start('package uncompressed css');
maybeCallback();
})
;
@ -106,8 +108,14 @@ module.exports = function(callback) {
.pipe(gulp.dest(output.compressed))
.pipe(print(log.created))
.on('end', function() {
runSequence('package compressed css', maybeCallback);
gulp.start('package compressed css');
maybeCallback();
})
;
};
/* Export with Metadata */
buildCSS.displayName = 'build-css';
buildCSS.description = 'Builds all css from source';
module.exports = buildCSS;

13
tasks/build/javascript.js

@ -33,13 +33,15 @@ var
banner = tasks.banner,
comments = tasks.regExp.comments,
log = tasks.log,
settings = tasks.settings
settings = tasks.settings,
buildJavascript
;
// add internal tasks (concat release)
require('../collections/internal')(gulp);
module.exports = function(callback) {
buildJavascript = function(callback) {
var
stream,
@ -55,7 +57,7 @@ module.exports = function(callback) {
}
// copy source javascript
gulp.src(source.definitions + '/**/' + globs.components + '.js')
return gulp.src(source.definitions + '/**/' + globs.components + '.js')
.pipe(plumber())
.pipe(flatten())
.pipe(replace(comments.license.in, comments.license.out))
@ -75,3 +77,8 @@ module.exports = function(callback) {
;
};
/* Export with Metadata */
buildJavascript.displayName = 'build-javascript';
buildJavascript.description = 'Builds all javascript from source';
module.exports = buildJavascript;

13
tasks/check-install.js

@ -7,11 +7,13 @@ var
gulp = require('gulp'),
fs = require('fs'),
console = require('better-console'),
install = require('./config/project/install')
install = require('./config/project/install'),
checkInstall
;
// export task
module.exports = function() {
checkInstall = function() {
setTimeout(function() {
if( !install.isSetup() ) {
@ -25,4 +27,9 @@ module.exports = function() {
}, 50); // Delay to allow console.clear to remove messages from check event
};
};
/* Export with Metadata */
checkInstall.displayName = 'check-install';
checkInstall.description = 'Checks if SUI needs to install before build/watch';
module.exports = checkInstall;

12
tasks/clean.js

@ -5,10 +5,16 @@
var
del = require('del'),
config = require('./config/user'),
tasks = require('./config/tasks')
tasks = require('./config/tasks'),
clean
;
// cleans distribution files
module.exports = function(callback) {
clean = function(callback) {
return del([config.paths.clean], tasks.settings.del, callback);
};
};
clean.displayName = 'clean';
clean.description = 'Cleans dist folder';
module.exports = clean;

20
tasks/collections/admin.js

@ -32,18 +32,18 @@ module.exports = function(gulp) {
;
/* Release */
gulp.task('init distributions', 'Grabs each component from GitHub', initDistributions);
gulp.task('create distributions', 'Updates files in each repo', createDistributions);
gulp.task('init components', 'Grabs each component from GitHub', initComponents);
gulp.task('create components', 'Updates files in each repo', createComponents);
gulp.task('init distributions', initDistributions);
gulp.task('create distributions', createDistributions);
gulp.task('init components', initComponents);
gulp.task('create components', createComponents);
/* Publish */
gulp.task('update distributions', 'Commits component updates from create to GitHub', updateDistributions);
gulp.task('update components', 'Commits component updates from create to GitHub', updateComponents);
gulp.task('update distributions', updateDistributions);
gulp.task('update components', updateComponents);
/* Tasks */
gulp.task('release', 'Stages changes in GitHub repos for all distributions', release);
gulp.task('publish', 'Publishes all releases (components, package)', publish);
gulp.task('register', 'Registers all packages with NPM', register);
gulp.task('release', release);
gulp.task('publish', publish);
gulp.task('register', register);
};
};

6
tasks/collections/build.js

@ -12,8 +12,8 @@ module.exports = function(gulp) {
;
// in case these tasks are undefined during import, less make sure these are available in scope
gulp.task('build-javascript', 'Builds all javascript from source', buildJS);
gulp.task('build-css', 'Builds all css from source', buildCSS);
gulp.task('build-assets', 'Copies all assets from source', buildAssets);
gulp.task('build-javascript', buildJS);
gulp.task('build-css', buildCSS);
gulp.task('build-assets', buildAssets);
};

4
tasks/collections/rtl.js

@ -10,7 +10,7 @@ module.exports = function(gulp) {
watchRTL = require('./../rtl/watch')
;
gulp.task('watch-rtl', 'Build all files as RTL', watchRTL);
gulp.task('build-rtl', 'Watch files as RTL ', buildRTL);
gulp.task('watch-rtl', watchRTL);
gulp.task('build-rtl', buildRTL);
};

1
tasks/config/defaults.js

@ -98,6 +98,7 @@ module.exports = {
'sticky',
'tab',
'transition',
'video',
// behaviors
'api',

2
tasks/config/npm/gulpfile.js

@ -3,7 +3,7 @@
*******************************/
var
gulp = require('gulp-help')(require('gulp')),
gulp = require('gulp'),
// read user config to know what task to load
config = require('./tasks/config/user'),

11
tasks/docs/build.js

@ -45,13 +45,15 @@ var
banner = tasks.banner,
comments = tasks.regExp.comments,
log = tasks.log,
settings = tasks.settings
settings = tasks.settings,
buildDocs
;
// add internal tasks (concat release)
require('../collections/internal')(gulp);
module.exports = function(callback) {
buildDocs = function(callback) {
var
stream,
@ -187,3 +189,8 @@ module.exports = function(callback) {
;
};
/* Export with Metadata */
buildDocs.displayName = 'build-docs';
buildDocs.description = 'Build all files and add to SUI Docs';
module.exports = buildDocs;

11
tasks/docs/serve.js

@ -41,12 +41,14 @@ var
globs,
assets,
output,
source
source,
serveDocs
;
require('../collections/internal')(gulp);
module.exports = function () {
serveDocs = function () {
// use a different config
config = configSetup.addDerivedValues(config);
@ -253,3 +255,8 @@ module.exports = function () {
};
/* Export with Metadata */
serveDocs.displayName = 'serve-docs';
serveDocs.description = 'Serve file changes to SUI Docs';
module.exports = serveDocs;

18
tasks/install.js

@ -23,7 +23,6 @@ var
fs = require('fs'),
mkdirp = require('mkdirp'),
path = require('path'),
runSequence = require('run-sequence'),
// gulp dependencies
chmod = require('gulp-chmod'),
@ -51,11 +50,12 @@ var
folders = install.folders,
regExp = install.regExp,
settings = install.settings,
source = install.source
source = install.source,
install
;
// Export install task
module.exports = function (callback) {
install = function (callback) {
var
currentConfig = requireDotFile('semantic.json'),
@ -408,7 +408,7 @@ gulp.task('create install files', function(callback) {
});
runSequence(
gulp.parallel(
'create theme.config',
'create semantic.json',
callback
@ -449,7 +449,7 @@ gulp.task('clean up install', function() {
});
runSequence(
gulp.series(
'run setup',
'create install files',
'clean up install',
@ -457,3 +457,9 @@ runSequence(
);
};
/* Export with Metadata */
install.displayName = 'install';
install.description = 'Installs semantic';
module.exports = install;

11
tasks/rtl/build.js

@ -39,13 +39,15 @@ var
banner = tasks.banner,
comments = tasks.regExp.comments,
log = tasks.log,
settings = tasks.settings
settings = tasks.settings,
buildRTL
;
// add internal tasks (concat release)
require('../collections/internal')(gulp);
module.exports = function(callback) {
buildRTL = function(callback) {
var
stream,
@ -130,3 +132,8 @@ module.exports = function(callback) {
;
};
/* Export with Metadata */
buildRTL.displayName = 'build-rtl';
buildRTL.description = 'Build files as RTL';
module.exports = buildRTL;

12
tasks/rtl/watch.js

@ -41,14 +41,16 @@ var
banner = tasks.banner,
comments = tasks.regExp.comments,
log = tasks.log,
settings = tasks.settings
settings = tasks.settings,
watchRTL
;
// add internal tasks (concat release)
require('../collections/internal')(gulp);
module.exports = function(callback) {
watchRTL = function(callback) {
if( !install.isSetup() ) {
console.error('Cannot watch files. Run "gulp install" to set-up Semantic');
@ -219,3 +221,9 @@ module.exports = function(callback) {
;
};
/* Export with Metadata */
watchRTL.displayName = 'watch-rtl';
watchRTL.description = 'Watch files as RTL';
module.exports = watchRTL;

12
tasks/version.js

@ -3,9 +3,15 @@
*******************************/
var
release = require('./config/project/release')
release = require('./config/project/release'),
version
;
module.exports = function(callback) {
version = function(callback) {
console.log(release.title + ' ' + release.version);
};
};
/* Export with Metadata */
version.displayName = 'version';
version.description = 'Displays current version of Semantic';
module.exports = version;

15
tasks/watch.js

@ -3,7 +3,7 @@
*******************************/
var
gulp = require('gulp-help')(require('gulp')),
gulp = require('gulp'),
// node dependencies
console = require('better-console'),
@ -22,7 +22,6 @@ var
replace = require('gulp-replace'),
uglify = require('gulp-uglify'),
replaceExt = require('replace-ext'),
watch = require('gulp-watch'),
// user config
config = require('./config/user'),
@ -40,7 +39,9 @@ var
banner = tasks.banner,
comments = tasks.regExp.comments,
log = tasks.log,
settings = tasks.settings
settings = tasks.settings,
watch
;
@ -52,7 +53,7 @@ require('./collections/internal')(gulp);
// export task
module.exports = function(callback) {
watch = function(callback) {
if( !install.isSetup() ) {
console.error('Cannot watch files. Run "gulp install" to set-up Semantic');
@ -229,3 +230,9 @@ module.exports = function(callback) {
;
};
/* Export with Metadata */
watch.displayName = 'watch';
watch.description = 'Watch for site/theme changes';
module.exports = watch;
Loading…
Cancel
Save