eslint-plugin-eslint-env-restore
v1.0.1
Published
Restore `/* eslint-env $env */` comment functionality in ESLint v9
Readme
eslint-plugin-eslint-env-restore
ESLint plugin to restore /* eslint-env */ comment functionality in ESLint v9+.
As documented in https://eslint.org/docs/latest/use/configure/migration-guide#eslint-env-configuration-comments,
ESLint v9 removes /* eslint-env */ comment support to dynamically set the environment on a file-by-file basis.
Instead, you have to manually declare the globals you use which is quite ugly. This plugin restores the old functionality
of eslint-env -- assuming your /* eslint-env name */ comment is at the top of the file.
Install
npm i -D eslint-plugin-eslint-env-restoreUsage
Add inside your plugins and at the level of rules:
+const eslintEnvRestorePlugin = require('eslint-plugin-eslint-env-restore')
module.exports = [
{
plugins: {
+ 'eslint-env-restore': eslintEnvRestorePlugin
},
+ processor: 'eslint-env-restore/js',
rules: {
...otherRules,
+ 'no-unused-vars': ['error', { vars: 'local' /*, ... */ }]
}Also, to prevent getting errors about unused globals (as we add all of them for the specified env regardless of use), you must
set no-unused-vars's vars to ignore globals with vars: 'local', per https://eslint.org/docs/latest/rules/no-unused-vars#vars.
Then, you can run eslint or eslint --fix as usual on code like this:
/* eslint-env mocha */
describe('basic', () => {
it('test', () => {
console.log('it works~')
})
})without getting errors.
