Asp.net core 2 с угловым шаблоном 6 - PullRequest
0 голосов
/ 04 мая 2018

Я ищу шаблон для использования asp.net core 2.0 с angular 6 в одном решении с нажатием f5 для запуска приложения.

Можете ли вы помочь найти такой запрос?

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Я создал один, он на GitHub, это может быть хорошей отправной точкой, но он не идеален, он должен расти и развиваться в течение следующих месяцев ...

https://github.com/JuanGarciaCarmona/AspNetCore21Ang6Template

Также в Code Project есть статья, в которой объясняется, как ее использовать.

https://www.codeproject.com/Articles/1246748/Angular-within-ASP-NET-Core

Надеюсь, это поможет.

0 голосов
/ 10 мая 2018

учебник здесь: Я бы не стал использовать

Microsoft.DotNet.Web.Spa.ProjectTemplates::2.0.0-rc1-final

но

Microsoft.DotNet.Web.Spa.ProjectTemplates::2.0.0

Вы можете использовать Angular6 .

Волшебство в том, что ядро ​​.net запускает новую командную строку и запускает скрипт npm .

app.UseSpa(spa =>
{
    // To learn more about options for serving an Angular SPA from ASP.NET Core,
    // see https://go.microsoft.com/fwlink/?linkid=864501

    spa.Options.SourcePath = "ClientApp";

    if (env.IsDevelopment())
    {
        spa.UseAngularCliServer(npmScript: "start");
    }
});

npm start по умолчанию является псевдонимом для ng serve.

У меня есть рабочий проект с Angular6 и Core 2.

Мой проект.csproj

...
<PropertyGroup>
  <TargetFramework>netcoreapp2.0</TargetFramework>
  <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
  <TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
  <IsPackable>false</IsPackable>

  <SpaRoot>ClientApp\</SpaRoot>
</PropertyGroup>

<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.6" />
  <PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="2.0.0" />
</ItemGroup>
...

и Startup.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Microsoft.AspNetCore.SpaServices.AngularCli;


namespace AngularSPA
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();

            // In production, the Angular files will be served from this directory
            services.AddSpaStaticFiles(configuration =>
            {
                configuration.RootPath = "ClientApp/dist";
            });
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();
            app.UseSpaStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller}/{action=Index}/{id?}");
            });

            app.UseSpa(spa =>
            {
                spa.Options.SourcePath = "ClientApp";

                if (env.IsDevelopment())
                {
                    spa.UseAngularCliServer(npmScript: "start");
                }
            });
        }
    }
}

enter image description here

Но у меня только эстетическая проблема со встроенной командной строкой, мой вопрос вы можете увидеть здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...