{"library":"react-intl.macro","title":"react-intl.macro","description":"Run react-intl at build-time with babel-plugin-macros. Current stable version is 0.3.7 (last released Feb 2020; no recent updates, likely maintenance mode). It extracts react-intl defineMessages, FormattedMessage, and FormattedHTMLMessage calls into JSON files during build, leveraging babel-plugin-macros without needing a separate Babel plugin. Different from babel-plugin-react-intl (requires explicit Babel config) and react-intl-cra (Create React App specific) – this macro approach works with any macro-enabled setup (CRA, Next.js, custom builds). Requires react-intl@2 and babel-plugin-macros.","language":"javascript","status":"maintenance","last_verified":"Sat Apr 25","install":{"commands":["npm install react-intl.macro"],"cli":null},"imports":["import { defineMessages } from 'react-intl.macro'","import { FormattedMessage } from 'react-intl.macro'","import { FormattedHTMLMessage } from 'react-intl.macro'"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"// Install dependencies\n// yarn add react-intl.macro react-intl babel-plugin-macros\n\n// babel-plugin-macros.config.js\nmodule.exports = {\n  'react-intl': {\n    verbose: false,\n  },\n};\n\n// Component.js\nimport { defineMessages, FormattedMessage } from 'react-intl.macro';\n\nconst messages = defineMessages({\n  'App.greet': {\n    id: 'App.greet',\n    defaultMessage: 'Hello, {name}!',\n    description: 'Greeting to welcome the user',\n  },\n});\n\nconst App = () => (\n  <FormattedMessage\n    id=\"App.welcome\"\n    defaultMessage=\"Welcome to our app\"\n    description=\"Welcome message\"\n  />\n);\n\n// Build with MESSAGE_DIR environment variable\n// MESSAGE_DIR='./.messages' react-scripts build\n// Output: .messages/App.json containing extracted messages","lang":"javascript","description":"Shows installation, config, and usage of react-intl.macro to replace react-intl imports and extract messages during build.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}