ESLint Plugin for RequireJS
raw JSON → 4.0.1 verified Sat Apr 25 auth: no javascript
An ESLint plugin that enforces code conventions for RequireJS (AMD) modules. Version 4.0.1 requires ESLint >=3.0.0 and Node >=6. Provides 13 rules covering possible errors (e.g., no-invalid-define, no-multiple-define, no-js-extension) and stylistic choices (e.g., no-named-define, no-amd-define). Includes a bundled 'recommended' config that enables all recommended rules and sets the amd environment. Under active development with frequent updates. Compared to other module linting plugins, this is the only dedicated RequireJS/AMD plugin for ESLint.
Common errors
error Error: Failed to load plugin 'requirejs': Cannot find module 'eslint-plugin-requirejs' ↓
cause The plugin is not installed, or ESLint cannot find it.
fix
Run 'npm install --save-dev eslint-plugin-requirejs' and ensure node_modules is in the correct location.
error ESLint configuration error: The rule 'no-invalid-define' is not found ↓
cause The rule is not prefixed with 'requirejs/'.
fix
Use 'requirejs/no-invalid-define' in your rules object.
error Configuration for rule 'requirejs/no-invalid-define' is invalid: Severity should be one of 0, 1, 2 or 'off','warn','error'. ↓
cause Invalid severity value used in rule configuration.
fix
Use 'off', 'warn', 'error', or 0, 1, 2.
Warnings
gotcha Plugin requires ESLint >=3.0.0 and Node >=6. Older Node or ESLint will not work. ↓
fix Use Node >=6 and ESLint >=3.0.0. For older environments, install eslint-plugin-requirejs@3.2.0.
gotcha Rules must be prefixed with 'requirejs/' in ESLint config. ↓
fix Use rule names like 'requirejs/no-invalid-define', not bare rule name.
gotcha When extending the recommended config, use 'plugin:requirejs/recommended' not 'requirejs/recommended'. ↓
fix Set extends to 'plugin:requirejs/recommended'.
Install
npm install eslint-plugin-requirejs yarn add eslint-plugin-requirejs pnpm add eslint-plugin-requirejs Imports
- plugin wrong
const requirejs = require('eslint-plugin-requirejs')correctmodule.exports = { plugins: ['requirejs'] } - rules wrong
"rules": { "no-invalid-define": "error" }correct"rules": { "requirejs/no-invalid-define": "error" } - extends wrong
"extends": ["requirejs/recommended"]correct"extends": ["plugin:requirejs/recommended"]
Quickstart
// .eslintrc.json
{
"plugins": ["requirejs"],
"extends": ["plugin:requirejs/recommended"],
"rules": {
"requirejs/no-named-define": "warn",
"requirejs/no-commonjs-wrapper": "error"
}
}
// Example: define a module
// Passes lint:
define(['jquery'], function($) {
'use strict';
return function() { /* module code */ };
});
// Fails lint (named define):
define('myModule', ['jquery'], function($) { return {}; });