Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在项目上运行formatjs extract时未返回任何消息。你知道为什么吗?_Reactjs_Electron_Internationalization_React Intl_Formatjs - Fatal编程技术网

Reactjs 在项目上运行formatjs extract时未返回任何消息。你知道为什么吗?

Reactjs 在项目上运行formatjs extract时未返回任何消息。你知道为什么吗?,reactjs,electron,internationalization,react-intl,formatjs,Reactjs,Electron,Internationalization,React Intl,Formatjs,所以,我在Electron中实施一个项目,并希望在其中实施国际化。我有一个简单的组件,它使用react intl的格式化消息和带有消息描述的messages.js文件。我尝试按照文档中的教程使用@formatjs/cli提取国际化消息,但是,即使它似乎运行正常,npm脚本似乎没有返回任何消息,就像它没有找到任何消息一样。我的配置和文件如下所示: .babelrc { "presets": ["react-app"], "plugins&

所以,我在Electron中实施一个项目,并希望在其中实施国际化。我有一个简单的组件,它使用
react intl
的格式化消息和带有消息描述的
messages.js
文件。我尝试按照文档中的教程使用
@formatjs/cli
提取国际化消息,但是,即使它似乎运行正常,npm脚本似乎没有返回任何消息,就像它没有找到任何消息一样。我的配置和文件如下所示:

.babelrc

{
  "presets":  ["react-app"],
  "plugins": [
    [
      "react-intl",
      {
        "idInterpolationPattern": "[sha512:contenthash:base64:6]",
        "extractFromFormatMessageCall": true,
        "ast": true
      }
    ]
  ]
}

messages.js

import { defineMessage, defineMessages } from 'react-intl';

const scope = 'src.components.Test';

export default defineMessages({
  info: {
    id: `${scope}.info`,
    defaultMessage: 'Info'
  }
});

package.json

...
"scripts": {
    "serve": "react-scripts start",
    "start": "SET DEBUG=true && electron .",
    "lint": "eslint .",
    "lint:fix": "eslint --fix .",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "messages:extract": "formatjs extract --ignore=src/translations/* --out-file=src/translations/pt.json 'src/**/messages.js'",
    "messages:compile": "formatjs compile-folder --ast  src/translations src/compiled-translations"
  },
...
"devDependencies": {
    "@babel/cli": "^7.12.8",
    "@formatjs/cli": "^2.13.15",
    "babel-plugin-react-intl": "^8.2.21",
    "babel-preset-react-app": "^10.0.0",
    "electron": "^10.1.1",
    "eslint": "^6.6.0",
    "eslint-config-airbnb": "^18.2.0",
    "eslint-plugin-import": "^2.22.1",
    "eslint-plugin-jsx-a11y": "^6.4.1",
    "eslint-plugin-react": "^7.21.5",
    "eslint-plugin-react-hooks": "^4.2.0",
    "extract-react-intl-messages": "^4.1.1"
  }
现在,每当我运行提取脚本(
messages:extract
)时,我得到的都是一个空的json对象。你知道我做错了什么吗? 谢谢

我也有同样的问题

尝试将
'src/**/messages.js'
更改为
\'src/**/messages.js\'

对我来说,这种改变是有效的