sindresorhus / grunt-eslint

Validate files with ESLint
MIT License
200 stars 72 forks source link

unexpected "Cannot find module 'eslint-plugin-jest'" error #157

Open paulschreiber opened 6 years ago

paulschreiber commented 6 years ago

With the following setup:

estest/
  bar/
    foo.js
  package.json
  Gruntfile.js

Running grunt eslint results in:

Warning: Failed to load plugin jest: Cannot find module 'eslint-plugin-jest' Use --force to continue.

Verbose output, with stacktrace:

~/estest $ grunt eslint --stack --debug --verbose
Initializing
Command-line options: --stack, --debug=1, --verbose

Reading "Gruntfile.js" Gruntfile...OK

Registering Gruntfile tasks.
Initializing config...OK

Registering "grunt-eslint" local Npm module tasks.
Reading /Users/schreipa/estest/node_modules/grunt-eslint/package.json...OK
Parsing /Users/schreipa/estest/node_modules/grunt-eslint/package.json...OK
Loading "eslint.js" tasks...OK
+ eslint
Loading "Gruntfile.js" tasks...OK
>> No tasks were registered or unregistered.

Running tasks: eslint

Running "eslint" task
[D] Task source: /Users/schreipa/estest/node_modules/grunt-eslint/tasks/eslint.js

Running "eslint:src" (eslint) task
[D] Task source: /Users/schreipa/estest/node_modules/grunt-eslint/tasks/eslint.js
Verifying property eslint.src exists in config...OK
Files: bar/foo.js -> src
Options: outputFile=false, quiet=false, maxWarnings=-1, failOnError
Warning: Failed to load plugin jest: Cannot find module 'eslint-plugin-jest' Use --force to continue.
Error: Failed to load plugin jest: Cannot find module 'eslint-plugin-jest'
  at Function.Module._resolveFilename (module.js:547:15)
  at Function.resolve (internal/module.js:18:19)
  at Plugins.load (/Users/schreipa/estest/node_modules/eslint/lib/config/plugins.js:106:29)
  at Array.forEach (<anonymous>:null:null)
  at Plugins.loadAll (/Users/schreipa/estest/node_modules/eslint/lib/config/plugins.js:166:21)
  at loadFromDisk (/Users/schreipa/estest/node_modules/eslint/lib/config/config-file.js:501:35)
  at Object.load (/Users/schreipa/estest/node_modules/eslint/lib/config/config-file.js:559:20)
  at Config.getLocalConfigHierarchy (/Users/schreipa/estest/node_modules/eslint/lib/config.js:227:44)
  at Config.getConfigHierarchy (/Users/schreipa/estest/node_modules/eslint/lib/config.js:179:43)
  at Config.getConfigVector (/Users/schreipa/estest/node_modules/eslint/lib/config.js:286:21)
  at Config.getConfig (/Users/schreipa/estest/node_modules/eslint/lib/config.js:329:29)
  at processText (/Users/schreipa/estest/node_modules/eslint/lib/cli-engine.js:163:33)
  at processFile (/Users/schreipa/estest/node_modules/eslint/lib/cli-engine.js:224:18)
  at fileList.map.fileInfo (/Users/schreipa/estest/node_modules/eslint/lib/cli-engine.js:550:20)
  at Array.map (<anonymous>:null:null)
  at CLIEngine.executeOnFiles (/Users/schreipa/estest/node_modules/eslint/lib/cli-engine.js:519:34)
  at Object.<anonymous> (/Users/schreipa/estest/node_modules/grunt-eslint/tasks/eslint.js:30:20)
  at Object.<anonymous> (/Users/schreipa/estest/node_modules/grunt/lib/grunt/task.js:252:15)
  at Object.thisTask.fn (/Users/schreipa/estest/node_modules/grunt/lib/grunt/task.js:70:16)
  at Object.<anonymous> (/Users/schreipa/estest/node_modules/grunt/lib/util/task.js:294:30)
  at Task.runTaskFn (/Users/schreipa/estest/node_modules/grunt/lib/util/task.js:244:24)
  at Task.<anonymous> (/Users/schreipa/estest/node_modules/grunt/lib/util/task.js:293:12)
  at /Users/schreipa/estest/node_modules/grunt/lib/util/task.js:220:11
  at _combinedTickCallback (internal/process/next_tick.js:131:7)
  at process._tickCallback (internal/process/next_tick.js:180:9)
  at Function.Module.runMain (module.js:695:11)
  at startup (bootstrap_node.js:188:16)
  at bootstrap_node.js:609:3

Gruntfile.js

module.exports = function( grunt ) {
    grunt.initConfig( {
        eslint: { src: [ 'bar/foo.js' ] }
    } );
    grunt.loadNpmTasks( 'grunt-eslint' );
};

package.json

{
    "devDependencies": {
        "eslint-config-wordpress": "^2.0.0",
        "grunt-eslint": "^20.1.0"
    },
    "dependencies": {
        "grunt": "^1.0.3",
        "grunt-cli": "^1.2.0"
    }
}

foo.js

1;

Moving foo.js outside of bar/ and updating the src path in Gruntfile makes the problem go away.

configuration

macOS 10.12.6 (16G1408) node 8.11.1 npm 6.1.0