为 .NET MVC 项目构建/捆绑 Angular 2 应用程序

2024-02-04

我目前在 .NET 4.6 项目中有一个 Angular '2' 应用程序。它运行良好,但我对捆绑有疑问。 该应用程序是使用最新的 Angular CLI 创建的,我更喜欢用它来构建/捆绑该应用程序。根据我的经验,该捆绑包的 webpack 创建非常棒。

我的问题是,对于捆绑并在 .NET MVC 应用程序中使用该捆绑包,您有什么建议/想法吗? 我见过一些其他线程,其中开发人员使用了 gulp 文件来执行 ng build 命令,然后将此输出传输到另一个位置以供使用。

任何意见,将不胜感激。

Thomas


我解决了这个问题。我已经实施了我认为是一个干净的解决方案。

对于有兴趣的人,我的回答如下:

  1. 在项目的根目录中有一个“Angular”文件夹,或者您希望选择的任何其他名称。

  2. 其中包含 angular-cli.json 和 package.json 文件。

  3. 如果您稍后要为部署创建 nuget 包(很可能不会),则将 angular/src/app/tsconfig.json 中的“outDir”设置为“../out-tsc”。这意味着您可以将“dist”文件夹添加到包中,而无需包含“out-tsc”文件夹。

  4. 您必须在用户帐户的 npm 文件夹中全局安装 Angular cli。运行 npm install -g @angular/cli 来执行此操作。

  5. 在 Angular/src 级别有一个空白的 index.html。 (除非您特别需要为此添加一些内容)。

  6. 配置(.net 项目的)根 tsconfig 以排除“Angular”文件夹。

  7. 您需要在 .csproj 中设置预构建事件。这需要 cd 进入 Angular 目录,运行 npm install,然后运行 ​​ng build(如果处于调试状态)或 ng build --prod(如果处于发布状态)。要确定您的项目是否处于调试/发布状态,宏是 $(ConfigurationName)。对于我的解决方案,我创建了一个 powershell 脚本,该脚本将 ConfigurationName 作为参数并运行 npm install 然后运行 ​​ng build。我将此脚本作为 .csproj 中的预构建事件运行。您也可以在此处添加 Angular cli 的全局安装,但我跳过了这一点。

  8. 为了将捆绑的角度文件包含到 MVC 视图中,我使用了导入链接:

<link rel="import" href="/angular/dist/index.html">

这在除 Chrome 之外的浏览器中不起作用,因此我在其上方添加了一个 Polyfill。这个polyfill来自webcomponentsjs:

<script async src="~/Scripts/polyfills/webcomponentsjs/lite.js" type="text/javascript"></script>
<link rel="import" href="/angular/dist/index.html">

结果视图:

@{
  Layout = "~/Views/Shared/_Layout.cshtml";
}

 <app-root>Loading...</app-root>

<script async src="~/Scripts/polyfills/webcomponentsjs/lite.js" type="text/javascript"></script>
<link rel="import" href="/angular/dist/index.html">

现在,当您构建然后启动 .NET MVC 应用程序并转到此视图时,您的角度应用程序将出现。

亲切的问候

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 .NET MVC 项目构建/捆绑 Angular 2 应用程序 的相关文章

随机推荐