Comments (7)
This is still an issue, so mentioning @idahogurl @JounQin for visibility
from prettier-eslint.
Posting some more findings with regards to "Aside 2" above:
Aside 2: ESLint appears to ignore .cjs
files when run with .
After debugging via npx eslint . --debug
, this appears to be the effect of the --ext
CLI flag. Since .
is a directory target, the implicit --ext .js
takes effect and .cjs
files are ignored:
$ npx eslint . --debug
eslint:file-enumerator Didn't match: example.cjs
eslint:file-enumerator Yield: example.js
On the contrary, ESLint file targets are included unconditionally:
$ npx eslint example.cjs example.js --debug
eslint:file-enumerator File: /repo/example.cjs
eslint:file-enumerator File: /repo/example.js
Since --ext
has no direct configuration file equivalent (see eslint/eslint#2274 and eslint/eslint#11223), and the CLI docs state
- Default Value:
.js
and the files that match theoverrides
entries of your configuration.
a no-op overrides
item can be used to make ESLint consider .cjs
files:
module.exports = {
overrides: [
{ files: '*.cjs' },
],
};
This can be confirmed by rerunning eslint --debug
:
$ npx eslint . --debug
eslint:file-enumerator Yield: example.cjs
eslint:file-enumerator Yield: example.js
The prettier-eslint
issue persists, though...
I was hoping that the above change to ESLint configuration could serve as a workaround for the prettier-eslint
formatting inconsistency, but unfortunately the formatting inconsistency is still reproducible.
from prettier-eslint.
Stale issue
from prettier-eslint.
No issue activity due to lack of response from maintainers
from prettier-eslint.
@mxxk Try putting this in your ESLint config
extensions: '[.js',
'.jsx',
'.ts',
'.tsx',
'.cjs',
'.mjs',
'.vue']
from prettier-eslint.
Thanks @idahogurl, but if I understood your suggestion correctly, extensions
is not a valid top-level property in ESLint config (.eslintrc.*
). Using the repro example above,
$ npx eslint example.cjs example.js
Oops! Something went wrong! :(
ESLint: 8.31.0
Error: ESLint configuration in .eslintrc.cjs is invalid:
- Unexpected top-level property "extensions".
at ConfigValidator.validateConfigSchema (/repo/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:2156:19)
at ConfigArrayFactory._normalizeConfigData (/repo/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:2998:19)
at ConfigArrayFactory.loadInDirectory (/repo/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:2866:33)
at CascadingConfigArrayFactory._loadConfigInAncestors (/repo/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:3848:46)
at CascadingConfigArrayFactory.getConfigArrayForFile (/repo/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:3769:18)
at FileEnumerator._iterateFilesWithFile (/repo/node_modules/eslint/lib/cli-engine/file-enumerator.js:368:43)
at FileEnumerator._iterateFiles (/repo/node_modules/eslint/lib/cli-engine/file-enumerator.js:349:25)
at FileEnumerator.iterateFiles (/repo/node_modules/eslint/lib/cli-engine/file-enumerator.js:299:59)
at iterateFiles.next (<anonymous>)
at CLIEngine.executeOnFiles (/repo/node_modules/eslint/lib/cli-engine/cli-engine.js:786:48)
Digging a little more, according to eslint/eslint#1674, eslint/eslint#2274, and eslint/eslint#10828, ESLint does not support a config file equivalent to passing --ext
to the ESLint CLI.
from prettier-eslint.
@mxxk You're right. It will have to be fixed in the code. The extension needs to be added to this array.
Lines 91 to 98 in 1c0bdbf
from prettier-eslint.
Related Issues (20)
- ability to capture (non-fixable) eslint errors/warnings? HOT 5
- Integration with CI/CD (gitlab) HOT 1
- Error: Failed to load plugin '@next/next' declared in 'CLIOptions': The argument 'filename' must be a file URL object, file URL string, or absolute path string. Received '' HOT 2
- Remove `--prettier-last` option because it's out scope HOT 2
- Support for `padded-blocks` corner cases HOT 3
- Error: `reportUnusedDisableDirectives` must be any of "error", "warn", "off", and null HOT 2
- prettier-eslint fails due to an eslint config error; eslint works if called directly. Typescript overrides issue? HOT 1
- prettier-eslint installs vue-eslint-parser 8.30, instead of 9.1.0 HOT 3
- `prettier-eslint` command fails due to unknown environment key `jest/globals` HOT 4
- Configuring reportUnusedDisableDirectives to true in .eslintrc will cause prettier-eslint to not work properly. HOT 1
- TypeError: Expected `input` to be a `string`, got `object` HOT 5
- Is this tool still needed? HOT 1
- Shouldn't this be the other way around? "This formats your code via prettier, and then passes the result of that to eslint --fix." HOT 6
- Status of capturing eslint warnings/errors? HOT 1
- feat: support flat config with `FlatESLint` HOT 7
- [meta] a new OpenCollective home for all `prettier` + `eslint` integration tools HOT 6
- How to use it? HOT 1
- prettier-eslint default trailingComma is not the same as Prettier v3 default trailingComma HOT 1
- rimraf dependency warnings HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from prettier-eslint.