SystemJS 与 React 本机

SystemJS with React native

我想在 react-native 中使用 systemjs。

当我在浏览器中使用以下代码时,systemjs 将自身注册为 global/window。

fetch('https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.18.17/system.src.js')
      .then(response => response.text())
      .then(txt => {
        eval(txt);
      })
      .catch(ex => {
        console.log(ex);
      });

我在主屏幕组件的 expo AwesomeProject 中执行了相同的代码,上面的代码没有抛出任何异常,但是当我尝试渲染所有全局注册的对象时,我没有看到 SystemJs/System。

  1. 我的第一个问题 - 是否可以注册 systemjs 并将其与 react-native 一起使用?

  2. 如果第一个问题的答案是肯定的,那么eval(Systemjs)的正确方法是?

  3. 如果没有,有没有其他方法可以访问系统js?

我在 github 上看过几个项目,比如 react-native-eval 和 react auto updater,但这不是我想要的。

谁能给我一些见解?

我会回答我自己的问题。 是的,可以在 React native 中加载 systemjs。

简单的 eval 将评估 systemjs 代码,但您可能会遇到一些错误。我不是 systemjs 内部的专家,但它似乎在某些情况下试图 运行,无论是浏览器还是在某些情况下节点服务器。

我在以下代码中收到错误。

var vmModule = 'vm'; var vm = require(vmModule);

我不得不稍微调整我的代码并提供一个伪造的 require 函数,然后我能够加载 systemjs。