Skip to content

Commit

Permalink
Build: Update ESLint & eslint-plugin-import, fixing the build
Browse files Browse the repository at this point in the history
Latest `main` started failing the build after some transitive dependencies
got updated, incorrectly recognizing some files with default exports as unused.

Since the new ESLint no longer supports Node 10 which we have to build on due
to use in our CI, skip ESLint in Node 10.

Ref gh-3225
Closes gh-4961
  • Loading branch information
mgol committed Oct 29, 2021
1 parent e124893 commit 9735edd
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 15 deletions.
45 changes: 32 additions & 13 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,18 @@ module.exports = function( grunt ) {
return data;
}

// Support: Node.js <12
// Skip running tasks that dropped support for Node.js 10
// in this Node version.
function runIfNewNode( task ) {
return oldNode ? "print_old_node_message:" + task : task;
}

var fs = require( "fs" ),
gzip = require( "gzip-js" ),
oldNode = /^v10\./.test( process.version ),
isTravis = process.env.TRAVIS,
travisBrowsers = process.env.BROWSERS && process.env.BROWSERS.split( "," ),
CLIEngine = require( "eslint" ).CLIEngine;
travisBrowsers = process.env.BROWSERS && process.env.BROWSERS.split( "," );

if ( !grunt.option( "filename" ) ) {
grunt.option( "filename", "jquery.js" );
Expand Down Expand Up @@ -117,9 +124,14 @@ module.exports = function( grunt ) {

// Ignore files from .eslintignore
// See https://github.com/sindresorhus/grunt-eslint/issues/119
...new CLIEngine()
.getConfigForFile( "Gruntfile.js" )
.ignorePatterns.map( ( p ) => `!${ p }` )
...fs
.readFileSync( `${ __dirname }/.eslintignore`, "utf-8" )
.split( "\n" )
.filter( filePath => filePath )
.map( filePath => filePath[ 0 ] === "!" ?
filePath.slice( 1 ) :
`!${ filePath }`
)
]
}
},
Expand Down Expand Up @@ -334,28 +346,35 @@ module.exports = function( grunt ) {
} );

// Load grunt tasks from NPM packages
require( "load-grunt-tasks" )( grunt );
require( "load-grunt-tasks" )( grunt, {
pattern: oldNode ? [ "grunt-*", "!grunt-eslint" ] : [ "grunt-*" ]
} );

// Integrate jQuery specific tasks
grunt.loadTasks( "build/tasks" );

grunt.registerTask( "print_old_node_message", ( ...args ) => {
var task = args.join( ":" );
grunt.log.writeln( "Old Node.js detected, running the task \"" + task + "\" skipped..." );
} );

grunt.registerTask( "lint", [
"jsonlint",

// Running the full eslint task without breaking it down to targets
// would run the dist target first which would point to errors in the built
// file, making it harder to fix them. We want to check the built file only
// if we already know the source files pass the linter.
"eslint:dev",
"eslint:dist"
runIfNewNode( "eslint:dev" ),
runIfNewNode( "eslint:dist" )
] );

grunt.registerTask( "lint:newer", [
"newer:jsonlint",

// Don't replace it with just the task; see the above comment.
"newer:eslint:dev",
"newer:eslint:dist"
runIfNewNode( "newer:eslint:dev" ),
runIfNewNode( "newer:eslint:dist" )
] );

grunt.registerTask( "test:fast", "node_smoke_tests" );
Expand All @@ -378,7 +397,7 @@ module.exports = function( grunt ) {

grunt.registerTask( "dev", [
"build:*:*",
"newer:eslint:dev",
runIfNewNode( "newer:eslint:dev" ),
"newer:uglify",
"remove_map_comment",
"dist:*",
Expand All @@ -387,14 +406,14 @@ module.exports = function( grunt ) {
] );

grunt.registerTask( "default", [
"eslint:dev",
runIfNewNode( "eslint:dev" ),
"build:*:*",
"amd",
"uglify",
"remove_map_comment",
"dist:*",
"test:prepare",
"eslint:dist",
runIfNewNode( "eslint:dist" ),
"test:fast",
"compare_size"
] );
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@
"commitplease": "3.2.0",
"core-js-bundle": "3.6.5",
"eslint-config-jquery": "3.0.0",
"eslint-plugin-import": "2.22.0",
"eslint-plugin-import": "2.25.2",
"grunt": "1.2.1",
"grunt-babel": "8.0.0",
"grunt-cli": "1.3.2",
"grunt-compare-size": "0.4.2",
"grunt-contrib-uglify": "3.4.0",
"grunt-contrib-watch": "1.1.0",
"grunt-eslint": "23.0.0",
"grunt-eslint": "24.0.0",
"grunt-git-authors": "3.2.0",
"grunt-jsonlint": "2.1.2",
"grunt-karma": "4.0.0",
Expand Down

0 comments on commit 9735edd

Please sign in to comment.