首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ReactJS.NET?

用ReactJS.NET?
EN

Stack Overflow用户
提问于 2021-10-28 11:16:33
回答 1查看 141关注 0票数 0

TL;博士如何使用艾斯建ReactJS.NET

长版本

ReactJS.NET期望从一个“包”中获得以下信息:

代码语言:javascript
复制
React.Exceptions.ReactNotInitialisedException: 'React has not been loaded correctly: missing (React, ReactDOM, ReactDOMServer). Please expose your version of React as global variables named 'React', 'ReactDOM', and 'ReactDOMServer'

Webpack到底做了什么对我来说一直都很不清楚,但是看看ReactJS.NET Webpack教程这里,这是一个设置:

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom';
import ReactDOMServer from 'react-dom/server';

import RootComponent from './home.jsx';

global.React = React;
global.ReactDOM = ReactDOM;
global.ReactDOMServer = ReactDOMServer;

global.Components = { RootComponent };

在示例webpack-config 这里中,还有这样的输出设置:

代码语言:javascript
复制
{
  [...]
  globalObject: 'this',
}

在esbuild中镜像它将使用iifeesbuild.globalName = 'this',但是它会引发一个错误:

代码语言:javascript
复制
 > (global name):1:0: error: Expected identifier but found "this"
    1 │ this

Esbuild非常严厉地认为它是一个绑定器(不是一个transpile和--级联器),那么我如何调整Esbuild,使其将global对象转变成React.NET所期望的?--甚至有可能吗?

谢谢,弗莱明

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-08 10:47:55

找到了解决办法。

代码语言:javascript
复制
import { build } from 'esbuild'

const globalName = 'whatever'

build({
    [...]
    format: 'iife',
    globalName,
    footer: {
        // Important! Assigns the raw export of the bundle to whatever `this` is in the given context
        js: `Object.assign(this, ${globalName})`,
    },
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69753111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档