From 308e4b534b8b8bddff85b6327481d0cee6f70a2a Mon Sep 17 00:00:00 2001 From: Oleg Gaidarenko Date: Tue, 26 Jul 2016 02:53:57 +0300 Subject: [PATCH] Build: Simplify Gruntfile constructions Fixes gh-3246 --- .gitignore | 4 ++-- .npmignore | 2 +- Gruntfile.js | 62 +++++++++++++++++++++++++++++--------------------- dist/.eslintrc | 2 +- package.json | 4 ++-- 5 files changed, 42 insertions(+), 32 deletions(-) diff --git a/.gitignore b/.gitignore index 300adf912..8cb522de3 100644 --- a/.gitignore +++ b/.gitignore @@ -8,11 +8,11 @@ .bower.json .sizecache.json -npm-debug.log +npm-debug.log* # Ignore everything in dist folder except for eslint config /dist/* -!/dist/.eslintrc +!/dist/.eslintrc.json /node_modules diff --git a/.npmignore b/.npmignore index 322f560b7..5af00bba3 100644 --- a/.npmignore +++ b/.npmignore @@ -1,5 +1,5 @@ .eslintignore -.eslintrc +.eslintrc.json /.editorconfig /.gitattributes diff --git a/Gruntfile.js b/Gruntfile.js index 8cc4c91c0..7090a1af6 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -113,8 +113,15 @@ module.exports = function( grunt ) { // See https://github.com/sindresorhus/grunt-eslint/issues/119 quiet: true }, - dist: "dist/jquery.js", - dev: [ "src/**/*.js", "Gruntfile.js", "test/**/*.js", "build/**/*.js" ] + + // We have to explicitly declare "src" property otherwise "newer" + // task wouldn't work properly :/ + dist: { + src: "dist/jquery.js" + }, + dev: { + src: [ "src/**/*.js", "Gruntfile.js", "test/**/*.js", "build/**/*.js" ] + } }, testswarm: { tests: [ @@ -148,7 +155,7 @@ module.exports = function( grunt ) { ] }, watch: { - files: [ "<%= eslint.dev %>" ], + files: [ "<%= eslint.dev.src %>" ], tasks: [ "dev" ] }, uglify: { @@ -196,36 +203,39 @@ module.exports = function( grunt ) { grunt.registerTask( "lint", [ "jsonlint", - runIfNewNode( "eslint:dev" ), - runIfNewNode( "eslint:dist" ) + runIfNewNode( "eslint" ) ] ); - grunt.registerTask( "test_fast", [ runIfNewNode( "node_smoke_tests" ) ] ); + grunt.registerTask( "lint:newer", [ + "newer:jsonlint", + runIfNewNode( "newer:eslint" ) + ] ); - grunt.registerTask( "test", [ "test_fast" ].concat( - [ runIfNewNode( "promises_aplus_tests" ) ] - ) ); + grunt.registerTask( "test:fast", runIfNewNode( "node_smoke_tests" ) ); + grunt.registerTask( "test:slow", runIfNewNode( "promises_aplus_tests" ) ); + + grunt.registerTask( "test", [ + "test:fast", + "test:slow" + ] ); - // Short list as a high frequency watch task grunt.registerTask( "dev", [ - "build:*:*", - runIfNewNode( "newer:eslint:dev" ), - "uglify", - "remove_map_comment", - "dist:*" - ] - ); - - grunt.registerTask( "default", [ - "dev", - runIfNewNode( "eslint:dist" ), - "test_fast", + "build:*:*", + runIfNewNode( "newer:eslint:dev" ), + "newer:uglify", + "remove_map_comment", + "dist:*", "compare_size" ] ); - grunt.registerTask( "precommit_lint", [ - "newer:jsonlint", - runIfNewNode( "newer:eslint:dev" ), - runIfNewNode( "newer:eslint:dist" ) + grunt.registerTask( "default", [ + runIfNewNode( "eslint:dev" ), + "build:*:*", + "uglify", + "remove_map_comment", + "dist:*", + runIfNewNode( "eslint:dist" ), + "test:fast", + "compare_size" ] ); }; diff --git a/dist/.eslintrc b/dist/.eslintrc index d21ae4d16..ac4ec2fef 100644 --- a/dist/.eslintrc +++ b/dist/.eslintrc @@ -1,7 +1,7 @@ { "extends": "../src/.eslintrc", "rules": { - // That is okay for built version + // That is okay for the built version "no-multiple-empty-lines": "off", // Because sizze is not compatible to jquery code style diff --git a/package.json b/package.json index d05c2485a..1e2e4262c 100644 --- a/package.json +++ b/package.json @@ -60,8 +60,8 @@ "scripts": { "build": "npm install && grunt", "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint", + "test": "grunt && grunt test:slow", + "precommit": "grunt lint:newer", "commitmsg": "node node_modules/commitplease" }, "commitplease": {