使用 Reason 和 React 构建组件总是会给我一个“react”的模块导入语句,如果 React 包含在 CDN 中,则无法找到该语句。有解决办法吗?我试图定义window.react = React
在index.html 中没有成功。es6-global
设置不会改变任何东西。
我没有使用像 webpack 这样的捆绑程序。
编辑:可能来自 Reason 论坛的相关主题:https://reasonml.chat/t/can-one-load-reasonml-es6-modules-without-a-bundler/2219
类似问题(未解决):可以在没有捆绑器的情况下加载reasonml es6模块吗
importmap
(尚未在浏览器中实现)可能是另一种解决方案:在没有 Transpiler/Bundler 步骤的情况下使用 ES6 模块
从技术上讲,是的,您可以,但这并不像使用 npm 流程和使用捆绑器那么容易。
ReasonReact 绑定的编写方式可生成导入模块的输出 JavaScript,例如:
import * as React from "react";
(如果使用 ES6 模块样式。)
如果使用 CDN,您可能需要如下所示的输出:
import * as React from "https://some.cdn/react";
语法(来自ReasonReact 仓库)控制输出的JS是:
[@bs.module "react"]
external createElement: (component('props), 'props) => element = "createElement";
如果你把它改成:
[@bs.module "https://some.cdn/react"]
external createElement: (component('props), 'props) => element = "createElement";
...然后你就会得到所需的输出。但问题是你需要更改源......即维护或查找该 CDN 的 React 分叉绑定。或者设置一些代码自动化来执行查找和替换[@bs.module "react"]
with [@bs.module "https://some.cnd/react"]
。所以无论哪种方式,它都不像使用捆绑器那么简单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)