Backbone specific linting rules for ESLint
#How to use
Install ESLint either locally or globally
npm install eslint@">=1.0.0"
or
npm install eslint@">=1.0.0" --save-deveslint-plugin-backbone requires ESLint with version greater then 1.0.0 if you would like to use your own base models.
If you installed ESLint globally, you have to install Backbone plugin globally too. Otherwise, install it locally.
npm install eslint-plugin-backbone
or
npm install eslint-plugin-backbone --save-devIf you are using ESLint >0.9.0 then this plugin will provide default configuration. If you are fine with defaults, you do not need to update your .eslintrc file.
Defaults are currently set to the following:
"collection-model": 2,
"defaults-on-top": 1,
"event-scope": 1,
"events-on-top": [1, ["tagName", "className"]],
"initialize-on-top": [1, { View: ["tagName", "className", "events"], Model: ["defaults", "url", "urlRoot"], Collection: ["model", "url"] }],
"model-defaults": 2,
"no-changed-set": 2,
"no-collection-models": 2,
"no-constructor": 1,
"no-el-assign": 2,
"no-model-attributes": 2,
"no-native-jquery": [1, "selector"],
"no-silent": 1,
"no-view-collection-models": 2,
"no-view-model-attributes": 2,
"no-view-onoff-binding": 2,
"render-return": 2Add plugins section and specify eslint-plugin-backbone as a plugin
{
"plugins": [
"backbone"
]
}Enable all of the rules that you would like to use
{
"rules": {
"backbone/collection-model": 1,
"backbone/defaults-on-top": 1,
"backbone/model-defaults": 1,
"backbone/no-constructor": 1,
"backbone/no-native-jquery": 1,
...
}
}If you are using custom models/view/collection bases you also have to specify each on in the settings section
{
"settings": {
"backbone": {
"Collection": ["Backbone.NestedCollection", "MyCollection"],
"Model": ["MyBaseModel"],
"View": ["MyBaseView"]
}
}
}#List of supported rules