Reputation: 991
While coding, I was not using eslint. Now I installed it and it has flooded my editor with prettier/prettier errors, which by no way seem like they make my code prettier. I am looking to find a way to solve this.
prettierrc.js:
module.exports = {
bracketSpacing: true,
jsxBracketSameLine: false,
singleQuote: true,
trailingComma: 'all',
};
eslintrc.js:
module.exports = {
root: true,
extends: '@react-native-community',
};
And finally, some example code:
import React, {Component} from 'react';
import {View, Text, Picker} from 'react-native';
import {connect} from 'react-redux';
import {employeeUpdate} from '../actions';
import {CardSection, Input} from './common';
class EmployeeForm extends Component {
render(){
return (
<View>
<CardSection>
<Input
label="Name"
placeholder="Marco"
value={this.props.name}
onChangeText={value => this.props.employeeUpdate({prop: 'name', value})}
/>
</CardSection>
<CardSection>
<Input
label="Phone"
placeholder="555-5555"
value={this.props.phone}
onChangeText={value => this.props.employeeUpdate({prop: 'phone', value })}
/>
</CardSection>
<CardSection style={{ flexDirection: 'row'}}>
<Text style={styles.pickerTextStyle}>Shift</Text>
<Picker
style={{flex: 1}}
selectedValue={this.props.shift}
onValueChange={value => this.props.employeeUpdate({prop: 'shift', value})}
>
<Picker.Item label="Monday" value="Monday" />
<Picker.Item label="Tuesday" value="Tuesday"/>
<Picker.Item label="Wednesday" value="Wednesday"/>
<Picker.Item label="Thursday" value="Thursday"/>
<Picker.Item label="Friday" value="Friday"/>
<Picker.Item label="Saturday" value="Saturday"/>
<Picker.Item label="Sunday" value="Sunday"/>
</Picker>
</CardSection>
</View>
);
}
}
I am simply trying to remove the error since it is annoying to have thousands of red dots looking to make my code "prettier", which is not achieving.
Upvotes: 82
Views: 124390
Reputation: 1
There is another easy and effective way to restrict prettier errors, as I was unable to locate my eslint.js or eslint.json file.
Create a file named .prettierignore in the root of the project
Now paste the names of all the folders or files that you don't want the prettier to work. One simple way is to add the name of your root folder for your screens or components.
For my app, all the screens were in the component folder so I added component folder in the file. Below is the content I added in .prettier
node_modules build dist android ios components
Upvotes: -2
Reputation: 3675
So I had both eslint-plugin-prettier
and eslint-config-prettier
on my package.json as devdependencies. I removed the eslint-config-prettier and it seemed to work for me.
//.eslintrc.js
module.exports = {
root: true,
extends: ['@react-native', 'prettier'],
rules: {
'react/react-in-jsx-scope': 'off',
'react-native/no-inline-styles': 'off',
},
};
Upvotes: 0
Reputation: 171
To get rid of conflicting rules when using both - prettier and eslint there is a eslint-config-prettier
package.
Run npm install --save-dev eslint-config-prettier
to install and then in eslintrc.js
(or wherever you have the eslint rules defined) add:
{
"extends": [
...,
"@react-native-community",
"prettier"
]
}
Now eslint should respect prettier rules. Here is a link to GH repo.
Upvotes: 3
Reputation: 5529
Instead of disabling linting for the file, you can instead disable prettier within the eslintrc.js config file:
module.exports = {
root: true,
extends: '@react-native-community',
rules: {
'prettier/prettier': 0,
},
};
Upvotes: 223