Registry / testing / eslint-plugin-formatjs

eslint-plugin-formatjs

JSON →
library6.4.6jsnpmunverified

ESLint plugin for FormatJS that enforces best practices for internationalized messages. Current stable version is 6.4.6, with regular releases tied to the FormatJS monorepo. It provides rules for validating ICU message syntax, enforcing message extraction patterns, preventing missing descriptions, and ensuring consistent translation keys. Differentiates from generic i18n ESLint plugins by deep integration with intl-messageformat and react-intl, supporting both flat and nested message structures, and offering auto-fix for many rules. Requires ESLint 9 or 10.

npm install eslint-plugin-formatjs
INSTALL
IMPORT
SIG · ESLINT-PLUGIN-FORM
E
eslint-plugin-formatjs
testingjavascriptv6.4.6
Install
—
Import
—
Disk
—
Pass rate
0/ 6
Env Coverage0 / 6
glibc
18–22
musl
18–22
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18–226 runs
build_error
glibc
node 18–226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
✓ import eslintPluginFormatjs from 'eslint-plugin-formatjs'
✗ const eslintPluginFormatjs = require('eslint-plugin-formatjs')
ESM-only since v6; CommonJS require will fail.
rules
✓ import { rules } from 'eslint-plugin-formatjs'
All rules are available as named exports for custom configurations.
configs
✓ import { configs } from 'eslint-plugin-formatjs'
Exposes 'recommended' and 'flat' configs for easy setup.

ESLint flat config setup with two FormatJS rules enabled.

import eslintPluginFormatjs from 'eslint-plugin-formatjs'; export default [ { plugins: { formatjs: eslintPluginFormatjs }, rules: { 'formatjs/enforce-description': 'error', 'formatjs/no-literal-string-in-jsx': 'warn' } } ];
Debug
Known issues
breakingVersion 6 dropped support for ESLint 8; requires ESLint 9 or 10.
fix
Upgrade ESLint to 9.x or 10.x, or use eslint-plugin-formatjs@5.x.
affects: >=6.0.0
gotchaThe plugin is ESM-only since v6; using require() will throw an error.
fix
Use import syntax or dynamic import() in CommonJS projects.
affects: >=6.0.0
deprecatedThe 'flat' config is now the default; the old .eslintrc format is deprecated for this plugin.
fix
Migrate to ESLint flat config using configs['flat'].
affects: >=6.0.0
gotchaSome rules require @formatjs/ts-transformer to be installed when using TypeScript.
fix
Install @formatjs/ts-transformer as a dev dependency for TypeScript projects.
affects: >=4.0.0
gotchaThe rule 'formatjs/no-literal-string-in-jsx' only works with react-intl; requires babel-plugin-formatjs or equivalent.
fix
Ensure your build pipeline includes babel-plugin-formatjs or @formatjs/unplugin.
affects: >=3.0.0
Errors
Common errors & fixes
Error: Failed to load plugin 'formatjs': Cannot find module 'eslint-plugin-formatjs'
Plugin not installed or ESLint cannot resolve it.
fix
npm install eslint-plugin-formatjs --save-dev
TypeError: (0 , _eslintPluginFormatjs.default) is not a function
Using require() on an ESM-only module.
fix
Change to import statement: import eslintPluginFormatjs from 'eslint-plugin-formatjs'
ESLint couldn't determine the plugin 'formatjs' uniquely. This may be caused by a plugin conflict.
Multiple versions of the plugin installed or name collision.
fix
Check node_modules for duplicate installations and deduplicate with npm dedupe.
Parsing error: The keyword 'import' is reserved
ESLint parser does not support ES modules; need to configure parserOptions.
fix
Set parserOptions: { sourceType: 'module' } in ESLint config.
Upgrade
Version history
6.4.6latest on npm
Audit
Dependencies
eslintrequiredpeer dependency: ESLint 9 or 10 required for plugin to function
Agent activity
6 hits · last 30 days
node
6
Resources
eslint-plugin-formatjs — npm install eslint-plugin-formatjs · libregistry