如何将 ReactDom 添加到 Meteor 中的全局命名空间

How to add ReactDom to global namespace in Meteor

如何将 ReactDOM 添加为 Meteor 中的全局可访问变量?那么它可以被 Meteor 中的其他第 3 方库使用吗?

背景信息,Meteor 是一个 Web 应用程序框架,它简化了开发过程并提供了数据库数据同步等附加功能。Golden Layout 是一个 UI 组件,用于创建类似 Dock 的布局类似于什么例如,您在 Visual Studio 中看到过,它支持使用 React 组件填充视图。 Golden-Layout 文档说:

Make sure to include jQuery, React and ReactDOM in a way that makes it accessible to GoldenLayout.

尝试将其导入 Meteor 时出现以下错误:

Uncaught ReferenceError: ReactDOM is not defined

我查了一个使用webpack的例子,找到了这个配置段:

plugins: [
    ...
    // Necessary b/c golden-layout depends on all 3 of these libs via UMD globals
    new webpack.ProvidePlugin({
        React: 'react',
        ReactDOM: 'react-dom',
        $: 'jquery',
        jQuery: 'jquery'
    }),
    ...
],

但是Meteor好像没有使用webpack,或者不能直接修改webpack。有什么建议吗?

如果您使用的是 typescript,请使用 declare 在启动时加载的 typescript 文件中声明一个全局变量

例如声明 var ReactDom;

我不使用 React,但这是我必须在 meteor 中声明我的全局变量的方式。

这可能不是一个好方法,但我在客户端启动代码中放置了以下代码并且它起作用了:

// set the global variables 
global.ReactDOM = require('react-dom')
global.React = require('react')