Cannot find module 'eslint-config-airbnb/base' on BigCommerce 'stencil bundle'

Abram picture Abram · May 25, 2017 · Viewed 7.8k times · Source

When I run stencil bundle I see the following:

  ➜  cornerstone git:(master) ✗ stencil bundle
  Validating theme...
  Running ESLint...
  /Users/xxx/.nvm/versions/node/v4.4.0/lib/node_modules/@bigcommerce/stencil-cli/node_modules/eslint/lib/config/config-file.js:402
              throw e;
              ^

  Error: Cannot find module 'eslint-config-airbnb/base'
  Referenced from: /Users/xxx/bigcommerce/cornerstone/.eslintrc
      at Object.ModuleResolver.resolve (/Users/xxx/.nvm/versions/node/v4.4.0/lib/node_modules/@bigcommerce/stencil-cli/node_modules/eslint/lib/util/module-resolver.js:75:19)
      at resolve (/Users/xxx/.nvm/versions/node/v4.4.0/lib/node_modules/@bigcommerce/stencil-cli/node_modules/eslint/lib/config/config-file.js:479:33)
      at load (/Users/xxx/.nvm/versions/node/v4.4.0/lib/node_modules/@bigcommerce/stencil-cli/node_modules/eslint/lib/config/config-file.js:496:24)
      at /Users/xxx/.nvm/versions/node/v4.4.0/lib/node_modules/@bigcommerce/stencil-cli/node_modules/eslint/lib/config/config-file.js:392:36
      at Array.reduceRight (native)
      at applyExtends (/Users/xxx/.nvm/versions/node/v4.4.0/lib/node_modules/@bigcommerce/stencil-cli/node_modules/eslint/lib/config/config-file.js:363:28)
      at Object.load (/Users/xxx/.nvm/versions/node/v4.4.0/lib/node_modules/@bigcommerce/stencil-cli/node_modules/eslint/lib/config/config-file.js:530:22)
      at loadConfig (/Users/xxx/.nvm/versions/node/v4.4.0/lib/node_modules/@bigcommerce/stencil-cli/node_modules/eslint/lib/config.js:64:33)
      at getLocalConfig (/Users/xxx/.nvm/versions/node/v4.4.0/lib/node_modules/@bigcommerce/stencil-cli/node_modules/eslint/lib/config.js:126:23)
      at Config.getConfig (/Users/xxx/.nvm/versions/node/v4.4.0/lib/node_modules/@bigcommerce/stencil-cli/node_modules/eslint/lib/config.js:227:22)

When I initially ran npm install I saw this:

  ➜  cornerstone git:(master) npm install
  npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
  npm WARN peerDependencies The peer dependency phantomjs-prebuilt@>=1.9 included from karma-phantomjs-launcher will no
  npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
  npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
  npm WARN peerDependencies The peer dependency eslint@^2.4.0 included from eslint-config-airbnb will no
  npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
  npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
  npm WARN peerDependencies The peer dependency eslint-plugin-react@^4.2.3 included from eslint-config-airbnb will no
  npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
  npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
  npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
  npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.

As per documentation for I tried running eslint-config-airbnb and ran this command:

npm install --save-dev eslint-config-airbnb eslint@^3.19.0 eslint-plugin-jsx-a11y@^5.0.1 eslint-plugin-import@^2.2.0 eslint-plugin-react@^7.0.1

Based on this:

  ➜  cornerstone git:(master) ✗ npm info "eslint-config-airbnb@latest" peerDependencies

  { eslint: '^3.19.0',
    'eslint-plugin-jsx-a11y': '^5.0.1',
    'eslint-plugin-import': '^2.2.0',
    'eslint-plugin-react': '^7.0.1' }

Answer

dancerphil picture dancerphil · Feb 1, 2018

It occurs when you use global eslint package and non-global eslint-config-airbnb.

You can solve it by npm install eslint --save-dev && npm uninstall eslint -g