Open simonhaenisch opened 1 month ago
I think I agree here.
Maybe its worth making the flat/mixed-esm-and-cjs
config the recommended one :thinking:
Thoughts @aladdin-add and @voxpelli?
This is also possibly related to #300
Yeah, I think #300 should be the recommended one
I'm running something similar to #300 in my own projects: https://github.com/voxpelli/eslint-config/blob/9eb2261fd1e0b91bea570bd83811911cf23849f6/base-configs/node.js#L12
Just tried
import node from 'eslint-plugin-n'
const nodeRecommended = node.configs['flat/mixed-esm-and-cjs']
nodeRecommended.forEach(config => delete config.languageOptions?.sourceType)
export default [
...nodeRecommended,
// more stuff
]
and that works fine for me (.js
files based on type
field in package.json, and .cjs
/.mjs
fixed to CommonJS/ESM respectively).
So I'm also for making mixed-esm-and-cjs
the actual recommended
config.
I'd also drop the languageOptions.sourceType
config, however I'm not sure if ESLint 8 also sets that correctly already.
eslint-plugin-n version
17.10.2
What problem do you want to solve?
https://eslint-online-playground.netlify.app/#eNpVjjsOwjAQRK9ibZMGzKfh13ILlsKy15HBXltxQJGi3J04SUHanfd2pofc6B11KiRPMrwyXMGFFJtW2CxsE4OobK5gA5S941bqyNbVa5KjoZnFBdsm/6kdbxnhhoxM3QQasurjW/FAFpO1vMuPynrV7hrSMQRiQ6Z6Ij9Hd2xOSr9VTfKVI4+lfZERDH3vlArL2lFGuIopKdk8opwQLvIs9wibdfY3sECHkzzs5RGhUAPyAMMPStleUQ==
☝️ gives
even though the file is using
.mjs
extension. After some digging I found the problem is this plugin's config which enforceslanguageOptions.sourceType: 'commonjs'
for all files. ESLint 9 already sets the sourceType correctly based ontype
field inpackage.json
and file extensions (.js
/.cjs
/.mjs
), so there's no need for this plugin to configure this.What do you think is the correct solution?
Don't set
sourceType
in language options and let ESLint handle this instead... see this playground where I removed the field from the config object and then it works fine.https://eslint-online-playground.netlify.app/#eNpdkDFPAzEMhf9K5OWWNm1ZgCLEwo6E2GqGKHFOKYkTXXKoqLr/ziVXCdrV73vPfj5DHvSGTiokTzIcM+zBhRSHImwWdohBdDZ3sALK3nGROrJ1/TXJ0dDC4gVbJz/2jteM8ISMPLvywr2TjiEQGzLiuU0ukfnQWa/KZvgDus9mNuSp0K1besX9qHp6S8XN8S8yx3HQ9PGTqNno1I4zZNXoizggi9sM5LphLpeU/pqj5DFHnnudK4tg6PuVUiVZO8oIe9GUqi096wjhUT7ILcLqWvv3gwrt7uVuK+8QKjUhTzD9AiiihF8=
Participation
Additional comments
Not sure if it's the same for ESLint 8.