【问题标题】:React Native AsyncStorage module causes error with spread operator ...require('React')React Native AsyncStorage 模块导致扩展运算符出错 ...require('React')
【发布时间】:2016-01-28 23:23:30
【问题描述】:

当我导入 AsyncStorage 模块(用于 redux-storage)时,我收到以下错误:

ERROR in ./~/react-native/Libraries/react-native/react-native.js
Module parse failed: ~/node_modules/react-native/Libraries/react-native/react-native.js Line 112: Unexpected token ...
You may need an appropriate loader to handle this file type.
|   // Note: this must be placed last to prevent eager
|   // evaluation of the getter-wrapped submodules above
|   ...require('React'),
| };

我的 .babelrc 扩展了 react-native 的:

"extends": "react-native/packager/react-packager/.babelrc"

我已尝试重新安装本机库,但没有帮助。

我正在使用这个 github 入门工具包https://github.com/este/este

已经检查过 webpack 配置,就像这个问题所建议的那样,它与 https://github.com/facebook/react-native/commit/f9b744d50137de25357994fe2e829f98104e2242 相同

【问题讨论】:

    标签: javascript reactjs react-native babeljs redux


    【解决方案1】:

    编辑:已经有一段时间了。今天我强烈建议不要使用它。只需运行 react-native 打包程序。如果你愿意,可以使用 .babelrc。这个晦涩的代码根本没有理由,我怀疑它是否仍然有效。


    https://gist.github.com/alexesDev/071f8935c82ca87a5b46

    这些是真正的拼图:

    (查看链接了解更多信息)

    webpack.config.js;

    var reactNativeExternalsPromise = (function () {
      var reactNativeRoot = path.dirname(require.resolve('react-native/package'));
      var blacklist = require('react-native/packager/blacklist');
      var ReactPackager = require('react-native/packager/react-packager');
      const rnEntryPoint = require.resolve('react-native');
    
      return ReactPackager.getDependencies({
        assetRoots: [__dirname],
        blacklistRE: blacklist(false),
        projectRoots: [__dirname],
        transformModulePath: require.resolve('react-native/packager/transformer'),
      }, {
        entryFile: rnEntryPoint,
        dev: true,
        platform: 'ios',
      })
        .then(function (dependencies) {
          return dependencies.filter(function (dependency) {
            return !dependency.isPolyfill;
          });
        })
        .then(function (dependencies) {
          return dependencies.map(function (dependency) {
            return dependency.id;
          });
        });
    }());
    

    externals: [
        function (context, request, cb) {
          reactNativeExternalsPromise.then(function (reactNativeExternals) {
            if (['react-native'].concat(reactNativeExternals).indexOf(request) != -1) {
              cb(null, request);
            } else{
              cb();
            }
          });
        }
      ],
    

    【讨论】:

      猜你喜欢
      • 2016-04-06
      • 2020-04-06
      • 2017-04-12
      • 2019-11-03
      • 1970-01-01
      • 2020-08-08
      • 2020-11-29
      • 2019-01-30
      • 2019-08-10
      相关资源
      最近更新 更多