Используя Export Default {myNamedModule} - и затем импортируете этот названный модуль в React Native? - PullRequest
0 голосов
/ 29 ноября 2018

Я потратил некоторое время, работая с моими Babel конфигурациями.Я не эксперт, но я также неопытен с Babel.Я довольно новичок в попытке настроить его в отношении React-Native.

Я много чего пытался заставить экспорт по умолчанию работать с React Native, но когда я пытаюсь импортировать именованные модули из экспорта по умолчаниюЯ получаю undefined.

Что я здесь пропускаю?Я могу export default и затем импортировать именованные модули в мою Webpack среду сборки.Почему бы не в моем React Native окружении?

Я полагаю, это может быть связано с отсутствием Babel плагина "add-module-exports" в React Native, но в том числе он нарушает все.Есть ли способ включить его или эмулировать его поведение?

Примеры и .babelrc файлы ниже.

myNamedModule.js

export default { myNamedModule };

Импорт модуля myNamedModule

import { myNamedModule } from './myNamedModule'; // Results in undefined

Импорт всего файла

import myNamedModule from './myNamedModule'; // Results in undefined

Импорт всего файлас * as

import * as myNamedModule from './myNamedModule'; // Imports the entire default export as expected

.babelrc для React Native

{
  "presets": [
    "module:metro-react-native-babel-preset",
  ],
  "plugins": [
    "@babel/plugin-proposal-export-namespace-from",
    [
      "babel-plugin-module-resolver",
      {
        "alias": {
          "react-native-vector-icons": "@expo/vector-icons"
        },
      },
    ],
    ["@babel/plugin-proposal-decorators", { legacy: true }],
  ]
}

.babelrc для электрона

(Последнее, что я проверял, это также работало для сети, если я изменилpreset-env)

{
  "presets": [
    ["@babel/preset-env", {
      "targets": { "electron": "3.0.10" },
      "useBuiltIns": "usage"
    }],
    "@babel/preset-react",
    "@babel/preset-flow"
  ],
  "plugins": [
    "@babel/plugin-transform-flow-strip-types",
    "add-module-exports",
    "@babel/plugin-proposal-export-default-from",
    ["@babel/plugin-proposal-optional-chaining", { "loose": false }],
    "@babel/plugin-proposal-do-expressions",
    "@babel/plugin-proposal-export-namespace-from",
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-transform-classes",
  ]
}
...