Skip to content
This repository has been archived by the owner on Jan 18, 2019. It is now read-only.

Upgrade neutrino packages #59

Merged
merged 2 commits into from
Dec 10, 2018
Merged

Upgrade neutrino packages #59

merged 2 commits into from
Dec 10, 2018

Conversation

helfi92
Copy link
Contributor

@helfi92 helfi92 commented Nov 21, 2018

No description provided.

@helfi92 helfi92 self-assigned this Nov 21, 2018
@helfi92
Copy link
Contributor Author

helfi92 commented Nov 21, 2018

Upgrading to latest neutrino throws errors.

Running yarn lint

➜  taskcluster-web-server git:(lint) ✗ yarn lint
yarn run v1.12.3
warning ../package.json: No license field
$ eslint --cache --format codeframe --ext mjs,js src test

An error occurred when loading the Neutrino configuration.

{ Error: Cannot find module 'babel-plugin-eslint-plugin-prettier' from '/Users/haali/Documents/Mozilla/projects/taskcluster-web-server'
- If you want to resolve "eslint-plugin-prettier", use "module:eslint-plugin-prettier"
    at Function.module.exports [as sync] (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/resolve/lib/sync.js:43:15)
    at resolveStandardizedName (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/@babel/core/lib/config/files/plugins.js:101:31)
    at resolvePlugin (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/@babel/core/lib/config/files/plugins.js:54:10)
    at reduce (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/babel-merge/dist/index.js:21:26)
    at Array.reduce (<anonymous>)
    at mergeArray (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/babel-merge/dist/index.js:20:36)
    at babelMerge (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/babel-merge/dist/index.js:40:19)
    at lintRule.use.tap.lintOptions (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/@neutrinojs/mocha/src/index.js:11:11)
    at Object.tap (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/webpack-chain/src/Use.js:14:20)
    at module.exports.neutrino (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/@neutrinojs/mocha/src/index.js:7:28) code: 'MODULE_NOT_FOUND' }
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Running yarn start

➜  taskcluster-web-server git:(lint) yarn start
yarn run v1.12.3
warning ../package.json: No license field
$ webpack --watch --mode development

An error occurred when loading the Neutrino configuration.

{ Error: Cannot find module 'babel-plugin-eslint-plugin-prettier' from '/Users/haali/Documents/Mozilla/projects/taskcluster-web-server'
- If you want to resolve "eslint-plugin-prettier", use "module:eslint-plugin-prettier"
    at Function.module.exports [as sync] (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/resolve/lib/sync.js:43:15)
    at resolveStandardizedName (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/@babel/core/lib/config/files/plugins.js:101:31)
    at resolvePlugin (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/@babel/core/lib/config/files/plugins.js:54:10)
    at reduce (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/babel-merge/dist/index.js:21:26)
    at Array.reduce (<anonymous>)
    at mergeArray (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/babel-merge/dist/index.js:20:36)
    at babelMerge (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/babel-merge/dist/index.js:40:19)
    at lintRule.use.tap.lintOptions (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/@neutrinojs/mocha/src/index.js:11:11)
    at Object.tap (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/webpack-chain/src/Use.js:14:20)
    at module.exports.neutrino (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/@neutrinojs/mocha/src/index.js:7:28)
    at Neutrino.use (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/neutrino/Neutrino.js:211:7)
    at Neutrino.use (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/neutrino/Neutrino.js:216:12)
    at middleware.use.map.usage (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/neutrino/Neutrino.js:236:44)
    at Array.map (<anonymous>)
    at Neutrino.use (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/neutrino/Neutrino.js:236:26)
    at Neutrino.use (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/neutrino/Neutrino.js:216:12)
    at middleware.use.map.usage (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/neutrino/Neutrino.js:236:44)
    at Array.map (<anonymous>)
    at Neutrino.use (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/neutrino/Neutrino.js:236:26)
    at module.exports (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/neutrino/index.js:36:16)
    at Object.<anonymous> (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/webpack.config.js:3:18)
    at Module._compile (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/v8-compile-cache/v8-compile-cache.js:178:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:689:10)
    at Module.load (internal/modules/cjs/loader.js:589:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:528:12)
    at Function.Module._load (internal/modules/cjs/loader.js:520:3)
    at Module.require (internal/modules/cjs/loader.js:626:17)
    at require (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/v8-compile-cache/v8-compile-cache.js:159:20)
    at WEBPACK_OPTIONS (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/webpack-cli/bin/convert-argv.js:133:13)
    at requireConfig (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/webpack-cli/bin/convert-argv.js:135:6) code: 'MODULE_NOT_FOUND' }
error Command failed with exit code 1.

@helfi92
Copy link
Contributor Author

helfi92 commented Nov 21, 2018

@edmorley Any idea why this is happening? Regenerating yarn.lock did not help.

@edmorley
Copy link

I believe this is because as of neutrinojs/neutrino#1182 @neutrinojs/eslint now uses an ESLint helper function to merge configurations rather than a home-grown merge, and this helper must validate the list of plugins, and is (correctly) reporting that the plugins entry is currently not in the expected format:

baseConfig: {
extends: ['eslint-config-prettier'],
},
plugins: ['eslint-plugin-prettier'],

The plugin needs to be referred to as prettier (eslint adds the prefix), see:
https://github.com/prettier/eslint-config-prettier#installation

@helfi92
Copy link
Contributor Author

helfi92 commented Nov 21, 2018

@edmorley I switched to using @mozilla-frontend-infra/node-lint which refers to eslint-plugin-prettier as prettier https://github.com/mozilla-frontend-infra/lint/blob/2d4a55b5d32912e7988e7134d61a444cf6f05981/packages/lint/index.js#L24. I get the same error:

➜  taskcluster-web-server git:(lint) yarn lint
yarn run v1.12.3
warning ../package.json: No license field
$ eslint --cache --format codeframe --ext mjs,js src test

An error occurred when loading the Neutrino configuration.

{ Error: Cannot find module 'babel-plugin-prettier' from '/Users/haali/Documents/Mozilla/projects/taskcluster-web-server'
- If you want to resolve "prettier", use "module:prettier"
    at Function.module.exports [as sync] (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/resolve/lib/sync.js:43:15)
    at resolveStandardizedName (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/@babel/core/lib/config/files/plugins.js:101:31)
    at resolvePlugin (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/@babel/core/lib/config/files/plugins.js:54:10)
    at reduce (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/babel-merge/dist/index.js:21:26)
    at Array.reduce (<anonymous>)
    at mergeArray (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/babel-merge/dist/index.js:20:36)
    at babelMerge (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/babel-merge/dist/index.js:40:19)
    at lintRule.use.tap.lintOptions (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/@neutrinojs/mocha/src/index.js:11:11)
    at Object.tap (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/webpack-chain/src/Use.js:14:20)
    at module.exports.neutrino (/Users/haali/Documents/Mozilla/projects/taskcluster-web-server/node_modules/@neutrinojs/mocha/src/index.js:7:28) code: 'MODULE_NOT_FOUND' }
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

@edmorley
Copy link

If I remove @neutrinojs/mocha it works. The wrong merge function is being used in:
https://github.com/neutrinojs/neutrino/blob/0488010ea77a1a7a267f2d5cf3e5a4558789882d/packages/mocha/src/index.js#L11
(there should be too merge imports, one for babel-merge and one for deepmerge)

I'll open a Neutrino PR. (Guess just shows how few people use the Mocha preset that no one has hit it so far!)

edmorley added a commit to neutrinojs/neutrino that referenced this pull request Nov 23, 2018
The refactor in #1182 inadvertently used babel-merge's `merge()` to
merge ESLint configuration in this preset rather than deepmerge, since
the existing `merge` import was not the same as in other presets from
which the lint rule merging block was copied.

In a later PR I think we should stop exporting a merge function from
`@neutrinojs/compile-loader` named `merge`, to avoid the reduce the
chance of this kind of naming conflict.

Fixes:
taskcluster/taskcluster-web-server#59 (comment)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants