I'm upgrading to use neutrino v6. My .neutrinorc.js
:
module.exports = {
use: [
'neutrino-preset-web',
'./override-web.js',
'neutrino-preset-vue'
]
};
I'm using neutrino-middleware-eslint
. This is my override-web.js
:
const eslint = require('neutrino-middleware-eslint');
neutrino.use(eslint, {
eslint: {
envs: ['browser', 'es6', 'commonjs'],
baseConfig: {
extends: ['eslint:recommended', 'prettier']
},
rules: {
indent: ['error', 4],
'linebreak-style': ['off', 'windows'],
quotes: ['error', 'single'],
semi: ['error', 'always']
}
}
});
The middleware recommended a way to generate eslintrc for ide linting. .eslintrc.js
const { Neutrino } = require('neutrino');
const api = Neutrino();
module.exports = api.call('eslintrc');
But it generates error:
C:\workspace\app>node .eslintrc.js
C:\workspace\app\node_modules\ramda\src\internal\_reduce.js:59
throw new TypeError('reduce: list must be array or iterable');
^
TypeError: reduce: list must be array or iterable
at _reduce (C:\workspace\app\node_modules\ramda\src\internal\_reduce.js:59:11)
at C:\workspace\app\node_modules\ramda\src\internal\_curry3.js:26:46
at f1 (C:\workspace\app\node_modules\ramda\src\internal\_curry1.js:17:17)
at evolve (C:\workspace\app\node_modules\ramda\src\evolve.js:37:57)
at C:\workspace\app\node_modules\ramda\src\internal\_curry2.js:20:46
at f1 (C:\workspace\app\node_modules\ramda\src\internal\_curry1.js:17:17)
at C:\workspace\app\node_modules\ramda\src\internal\_pipe.js:3:14
at C:\workspace\app\node_modules\ramda\src\internal\_arity.js:5:45
at Object.neutrino.register [as eslintrc] (C:\workspace\app\node_modules\neutrino-middleware-eslint\index.js:77:39)
at Object.call (C:\workspace\app\node_modules\neutrino\src\api.js:167:39)
at Object.<anonymous> (C:\workspace\app\.eslintrc.js:17:22)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Function.Module.runMain (module.js:605:10)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:575:3
I found that if I remove the neutrino-preset-vue
the error would go away.
Further investigation leads me to have another override-vue.js
used under neutrino-preset-vue
with this content:
module.exports = neutrino => {
neutrino.config.module.rule('lint').use('eslint').tap(options => {
delete options.env;
options.envs.push('node');
return options;
});
};
In this way, I can generate the correct eslintrc.
I'm not sure if it is the problem of the vue preset or the eslint middleware. I've also reported the case in the middleware issue:
neutrinojs/neutrino#265 (comment)