结合Asp.Net Core服务器端和React客户端

时间:2016-12-22 17:29:44

标签: javascript c# reactjs npm asp.net-core

我在Visual Studio 2015中使用模板创建了简单的Asp.Net默认项目: ASP.NET Core Web Application(.NET Core)/ Web Application,No Authentification

然后,我创建了 package.json ,为React加载所有stuf,这里是:

<książka id="k3">
    <tytuł> "Ogniem i Mieczem" </tytuł>
    <autor> Henryk Sienkiewicz </autor>
    <rokWydania> 1884 </rokWydania>
    <wydawnictwo> Świat Książki </wydawnictwo>
    <gatunek>Powieść</gatunek>
    <liczbaStron> 758 </liczbaStron>
    <cena>40.99 PLN</cena>
    <waluta> PLN </waluta>
</książka>

我的 webpack-config.js

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="książka">
    <xsl:text>&#xA;</xsl:text>
    <xsl:text>KSIĄŻKA:&#xA;</xsl:text>
    <xsl:call-template name="pad">
      <xsl:with-param name="label" select="'TYTUŁ:'"/>
      <xsl:with-param name="value" select="normalize-space(tytuł)"/>
    </xsl:call-template>
    <xsl:call-template name="pad">
      <xsl:with-param name="label" select="'AUTOR:'"/>
      <xsl:with-param name="value" select="normalize-space(autor)"/>
    </xsl:call-template>
    <xsl:call-template name="pad">
      <xsl:with-param name="label" select="'ROK WYDANIA:'"/>
      <xsl:with-param name="value" select="normalize-space(rokWydania)"/>
    </xsl:call-template>
    <xsl:call-template name="pad">
      <xsl:with-param name="label" select="'WYDAWNICTWO:'"/>
      <xsl:with-param name="value" select="normalize-space(wydawnictwo)"/>
    </xsl:call-template>
    <xsl:call-template name="pad">
      <xsl:with-param name="label" select="'GATUNEK:'"/>
      <xsl:with-param name="value" select="normalize-space(gatunek)"/>
    </xsl:call-template>
    <xsl:call-template name="pad">
      <xsl:with-param name="label" select="'LICZBA STRON:'"/>
      <xsl:with-param name="value" select="normalize-space(liczbaStron)"/>
    </xsl:call-template>
    <xsl:call-template name="pad">
      <xsl:with-param name="label" select="'CENA:'"/>
      <xsl:with-param name="value" select="normalize-space(cena)"/>
    </xsl:call-template>
  </xsl:template>

  <xsl:template name="pad">
    <xsl:param name="label"/>
    <xsl:param name="value"/>
    <xsl:variable name="padding" 
      select="'                                                  '"/>
    <xsl:value-of select="concat($label,
      substring($padding,string-length($label) + string-length($value)),
      $value,'&#xA;')"/>
  </xsl:template>

</xsl:stylesheet>

它运行正常,但是,主要问题是,我们需要在服务器端独立运行Kestrel,在客户端运行npm。

当我从Visual Studio启动项目时,如何启动所有客户端(npm)脚本来创建 index.js 文件?

1 个答案:

答案 0 :(得分:0)

在Configure方法的Startup.cs文件中设置以下内容:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            ...
            app.UseSpa(spa =>
            {
                spa.Options.SourcePath = "client";

                if (env.IsDevelopment())
                {
                    spa.UseReactDevelopmentServer("start");
                }
            });
        }