-
-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change Request: Don't set languageOptions.sourceType
(for ESLint 9)
#327
Comments
I think I agree here. Maybe its worth making the 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 ( So I'm also for making I'd also drop the |
@voxpelli , @scagood , @simonhaenisch I'm also a bit confused about the spread operator ( const nodePlugin = require("eslint-plugin-n")
module.exports = [
nodePlugin.configs["flat/recommended-script"],
{
rules: {
"n/exports-style": ["error", "module.exports"]
}
}
] |
for pure esm projects (with import node from 'eslint-plugin-n'
export default [
node.configs['flat/recommended']
] |
ohh so that's what the |
sure, PRs are always welcome! 😄 |
Forgive me but I barely know what I'm doing here (not a JS dev to say the least). import pluginN from 'eslint-plugin-n';
export default [
{
files: ['**/*.js'],
languageOptions: {
globals: globals.node,
sourceType: 'module',
},
plugins: {
n: pluginN,
},
rules: {
...pluginN.configs['flat/recommended'].rules,
},
},
]; |
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.
The text was updated successfully, but these errors were encountered: