我正在尝试将我的 JSX 文件捆绑在 asp.net core 应用程序中,但我无法让任何东西工作......我也在使用 ReactJS.NET。目前,我正在使用 Cassette 捆绑我的文件,并且我遵循了此指南 + Cassette 自己网站上的指南,但没有运气。指南中还说,当安装 React.Cassette NuGet 包时,应该创建一个
CassetteConfiguration.cs
文件 - 这没有发生,所以我创建了自己的 CassetteConfiguration.cs
文件,它看起来像这样:
namespace ReactNewTest
{
public class CassetteBundleConfiguration : IConfiguration<BundleCollection>
{
public void Configure(BundleCollection bundles)
{
// Configure your bundles here...
// Please read http://getcassette.net/documentation/configuration
bundles.Add<ScriptBundle>("main.js", "js/tutorial.jsx", "js/guide.jsx");
}
}
}
在此之后,我尝试将其发送到我的视图 -
Index.cshtml
- 视图中的代码如下所示:
@using Cassette.Web
@using Cassette
@using Cassette.Views
@using Cassette.Aspnet
@using Cassette.BundleProcessing
@using Cassette.React
@{
Layout = null;
Bundles.Reference("main.js");
}
<html>
<head>
<title>Hello React</title>
</head>
<body>
<div id="content"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react-dom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/remarkable/1.7.1/remarkable.min.js"></script>
@Bundles.RenderScripts()
</body>
</html>
我还将
_ViewImports.csHtml
编辑为:
@using React.AspNet
@using ReactNewTest
@using Cassette.React
@using System.Web.Optimization
@using Cassette.Views
@using Cassette
@using Cassette.Aspnet
@using Cassette.BundleProcessing
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@inject Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration TelemetryConfiguration
当我尝试运行它时,它只会给我this NullReferenceException。
我现在已经尝试了好几天让这个捆绑在我的 asp.net core 应用程序中工作,但我无法让任何东西工作......所有文档都是旧的,并导致相同的教程已经有 2 年了。 .
我尝试过与asp.net core自己的捆绑包、Babel、Webpack ad now Cassette 捆绑在一起,但没有任何效果,这让我发疯!
我真的希望有人能帮我解决这个捆绑问题。
Cassette 与 ASP.NET Core 不兼容,并且 ASP.NET Core 自带的捆绑器和压缩器(https://github.com/madskristensen/BundlerMinifier)不可扩展,因此无法添加 JSX 编译到它。您可以尝试使用 Gulp 或 Webpack 代替。