{"id":19834,"library":"eslint-plugin-meteor","title":"ESLint plugin for Meteor","description":"ESLint plugin providing Meteor-specific linting rules for best practices, security, and Blaze templates. Version 7.3.0 (February 2021) is the latest stable release. It enforces rules like audit-argument-checks, no-session, and template-names. Works with ESLint >=3.7.0 and Node >=10. Slower release cadence (last release 2021). Differentiator: the only dedicated Meteor ESLint plugin with a recommended configuration.","status":"active","version":"7.3.0","language":"javascript","source_language":"en","source_url":"https://github.com/dferber90/eslint-plugin-meteor","tags":["javascript","eslint","eslint-plugin","eslintplugin","meteor"],"install":[{"cmd":"npm install eslint-plugin-meteor","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-meteor","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-meteor","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency; required to run the plugin","package":"eslint","optional":false}],"imports":[{"note":"Not imported in code; configured in ESLint config files.","wrong":"// Wrong: requiring the plugin in code. Use ESLint config files instead.","symbol":"plugin","correct":"// In .eslintrc.js: plugins: ['meteor']"},{"note":"The correct way to use the recommended rules is via the plugin: prefix.","wrong":"extends: ['meteor']","symbol":"recommended config","correct":"extends: ['plugin:meteor/recommended']"},{"note":"Rules must be prefixed with 'meteor/' when configured in ESLint.","wrong":"rules: { 'audit-argument-checks': 'error' }","symbol":"rules","correct":"rules: { 'meteor/audit-argument-checks': 'error' }"}],"quickstart":{"code":"// Install: npm install --save-dev eslint eslint-plugin-meteor\n// Create .eslintrc.json:\n{\n  \"plugins\": [\"meteor\"],\n  \"extends\": [\"plugin:meteor/recommended\"],\n  \"parserOptions\": {\n    \"ecmaVersion\": 6,\n    \"sourceType\": \"module\",\n    \"ecmaFeatures\": { \"jsx\": true }\n  }\n}","lang":"javascript","description":"Installation and configuration of eslint-plugin-meteor with recommended rules and ES6/JSX support."},"warnings":[{"fix":"Upgrade to Node >=10","message":"Dropped support for Node 8 in v7.0.0","severity":"breaking","affected_versions":">=7.0.0"},{"fix":"Upgrade to Node >=8 (or >=10 for v7)","message":"Dropped support for Node 6 in v6.0.0","severity":"breaking","affected_versions":">=6.0.0"},{"fix":"No action needed; the upper bound was removed to allow newer ESLint versions","message":"Removed eslint peer dep upper bound in v7.2.1","severity":"breaking","affected_versions":">=7.2.1 <7.3.0"},{"fix":"Use modern Meteor lifecycle callbacks (onCreated, onRendered, onDestroyed) instead of Template.name.created etc.","message":"The rule 'no-template-lifecycle-assignments' was introduced to replace deprecated Meteor lifecycle callback assignments.","severity":"deprecated","affected_versions":">=5.0.0"},{"fix":"Be aware that the linter does not analyze runtime environment; manually review cross-environment code.","message":"The plugin does not warn about client-only features used on the server.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run 'npm install --save-dev eslint-plugin-meteor'","cause":"Plugin not installed or not in node_modules.","error":"ESLint couldn't find the plugin \"eslint-plugin-meteor\"."},{"fix":"Check documentation for correct rule options. Use 'error' or 'warn' as severity.","cause":"Rule configuration options are incorrect.","error":"Configuration for rule \"meteor/audit-argument-checks\" is invalid."},{"fix":"Upgrade to v7.2.2 or later.","cause":"Bug in v7.2.0 with certain code patterns.","error":"Cannot read property 'type' of undefined (audit-argument-checks rule)."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}