Ошибка React-MobX: для плагина decorators требуется параметр decoratorsBeforeExport, значение которого должно быть логическим - PullRequest
0 голосов
/ 09 ноября 2018

Я получаю следующую ошибку: Если вы переходите с Babylon / Babel 6 или хотите использовать старое предложение декораторов, вы должны использовать плагин decorators-legacy вместо decorators.

package.json

"@babel/plugin-proposal-decorators": {
      "version": "7.1.2",
      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.1.2.tgz",
      "integrity": "sha512-YooynBO6PmBgHvAd0fl5e5Tq/a0pEC6RqF62ouafme8FzdIVH41Mz/u1dn8fFVm4jzEJ+g/MsOxouwybJPuP8Q==",
      "requires": {
        "@babel/helper-plugin-utils": "^7.0.0",
        "@babel/helper-replace-supers": "^7.1.0",
        "@babel/helper-split-export-declaration": "^7.0.0",
        "@babel/plugin-syntax-decorators": "^7.1.0"
      }
    },

 "@babel/plugin-syntax-decorators": {
      "version": "7.1.0",
      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.1.0.tgz",
      "integrity": "sha512-uQvRSbgQ0nQg3jsmIixXXDCgSpkBolJ9X7NYThMKCcjvE8dN2uWJUzTUNNAeuKOjARTd+wUQV0ztXpgunZYKzQ==",
      "requires": {
        "@babel/helper-plugin-utils": "^7.0.0"
      }
    },

"babel-plugin-syntax-decorators": {
      "version": "6.13.0",
      "resolved": "http://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
      "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
      "dev": true
    },
    "babel-plugin-transform-decorators-legacy": {
      "version": "1.3.5",
      "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.5.tgz",
      "integrity": "sha512-jYHwjzRXRelYQ1uGm353zNzf3QmtdCfvJbuYTZ4gKveK7M9H1fs3a5AKdY1JUDl0z97E30ukORW1dzhWvsabtA==",
      "dev": true,
      "requires": {
        "babel-plugin-syntax-decorators": "^6.1.18",
        "babel-runtime": "^6.2.0",
        "babel-template": "^6.3.0"
      }
    },
"requires": {
     "@babel/plugin-proposal-decorators": "7.1.2",
}

tsconfig.json

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "allowJs": true
    }
}

Ответы [ 4 ]

0 голосов
/ 17 июня 2019

Реагирует на родную 0,59

babel.config.js:

{ 
  "presets": ["module:metro-react-native-babel-preset"],
  "plugins": [
        ["@babel/plugin-transform-flow-strip-types"],
        ["@babel/plugin-proposal-decorators", { "legacy": true}],
        ["@babel/plugin-proposal-class-properties", { "loose": true}]
    ]
}

npm install @babel/plugin-transform-flow-strip-types @babel/plugin-proposal-decorators @babel/plugin-proposal-class-properties --save

Источник: https://github.com/facebook/react-native/issues/20588#issuecomment-448218111

0 голосов
/ 02 декабря 2018
{
 "presets": ['@babel/preset-env', '@babel/preset-react'],
 "plugins": [
  ["import", { "libraryName": "antd", "libraryDirectory": "es", "style": "less" }],
  [
    "@babel/plugin-proposal-decorators",
    {
      "decoratorsBeforeExport":true
    }
  ]
 ]
}
0 голосов
/ 24 января 2019
"babel": {
   "presets": [
     "react-app"
   ],
  "plugins": [
  [
    "@babel/plugin-proposal-decorators",
    {
      "legacy": true
    }
  ],
  [
    "@babel/plugin-proposal-class-properties",
    {
      "loose": true
    }
   ]
  ]
 },
 "devDependencies": {
 "@babel/plugin-proposal-decorators": "^7.3.0"
}
0 голосов
/ 10 ноября 2018

Сообщение об ошибке немного сбивает с толку, однако с помощью немного более глубокого поиска вы можете устранить его, используя следующий подход.

Я не делаю никаких предположений, за исключением того, что вы используете веб-пакет в этом руководстве.

Вам необходимо добавить декораторы Babel Предложение к вашим зависимостям dev (это нужно только во время разработки) (которое вы уже добавили).

при использовании пряжи

yarn add --dev @babel/plugin-proposal-decorators 

другое для npm

npm install --save-dev @babel/plugin-proposal-decorators 

затем в вашем файле package.json найдите раздел конфигурации babel или добавьте его, если его там нет. Имя конфига строго "babel".

  "babel": {
    "presets": [
      "react-app"
    ],
    "plugins": [
      [
        "@babel/plugin-proposal-decorators",
        {
          "legacy": true
        }
      ]
    ]
  }

Обратите особое внимание на отступ при вводе вручную. обратите внимание, что объект "@babel/plugin-proposal-decorators" глубоко вложен в два массива, поэтому он должен работать как таковой.

и просто для проверки работоспособности ваши devDependencies будут как минимум равны

  "devDependencies": {
    "@babel/plugin-proposal-decorators": "^7.1.2"
  }

Теперь вы можете создавать свои приложения с помощью пряжи или npm и жить долго и счастливо.

...