gruntjs / grunt-cli

Grunt's command line interface.
http://gruntjs.com/
MIT License
706 stars 248 forks source link

"--report-directory" flag ignored by grunt-cli@~1.4.2 #152

Open roguib opened 9 months ago

roguib commented 9 months ago

Hi, I'm trying to upgrade grunt@1.0.1 to a higher version of the library and I'm facing some troubles with grunt recognising the flag report-directory. To debug this issue I've used this simple grunt task, that prints all the flags that are being passed:

'use strict';

module.exports = (grunt) => {
    grunt.registerTask('grunt_options', 'Runs grunt options debugging', function run() {
        console.log('Those are all the grunt options: ', grunt.option.flags());
    });
};

With some trial and error, I've been able to track down where this regression seems to have happened:

  1. Run npm i grunt@1.3.0 --save-dev
  2. Execute grunt task node/node node_modules/.bin/grunt grunt_options --report-directory=1 --report-dy=2 --report-wd-directory=3
  3. Uninstall grunt@1.3.0 and install 1.4.0 npm uninstall grunt && npm i grunt@1.4.0
  4. Run the task in step 2

For grunt@1.3.0 the output of the task is:

Those are all the grunt options:  [
  '--report-directory=1',
  '--report-dy=2',
  '--report-wd-directory=3',
  '--gruntfile=/Users/roguib/dev/visual-builder/mcs_buf/breeze/vbcs-client/Gruntfile.js'
]

However, for grunt@1.4.0 the output no longer includes --report-directory flag:

Running "grunt_options" task
Those are all the grunt options:  [
  '--report-dy=2',
  '--report-wd-directory=3',
  '--no-respawning',
  '--gruntfile=/Users/roguib/dev/visual-builder/mcs_buf/breeze/vbcs-client/Gruntfile.js'
]

I've noticed by looking at the diff v1.3.0...v1.4.0 it could be caused by a regression in grunt-cli library. Adding an override to grunt-cli to ~1.3.2 instead of the ~1.4.2 version that comes with the new release seems to solve the issue:

"overrides": {
    "grunt": {
      "grunt-cli": "~1.3.2"
    }
  },

In that case, the task correctly identifies --report-directory flag:

Those are all the grunt options:  [
  '--report-directory=1',
  '--report-dy=2',
  '--report-wd-directory=3',
  '--gruntfile=/Users/roguib/dev/visual-builder/mcs_buf/breeze/vbcs-client/Gruntfile.js'
]

This problem is also reproducible with the latest release of grunt@1.6.0 and grunt-cli@~1.4.3.