Как получить файл Angular TS для компиляции и обновления при сохранении в проекте .Net Core?

Вы можете использовать DecimalFormat с setMinimumFractionDigits(int scale):

private static String format(BigDecimal x, int scale) {
  NumberFormat formatter = new DecimalFormat("0.0E0");
  formatter.setRoundingMode(RoundingMode.HALF_UP);
  formatter.setMinimumFractionDigits(scale);
  return formatter.format(x);
}
...
System.out.println(format(new BigDecimal("0.00001"), 2)); // 1.00E-5
System.out.println(format(new BigDecimal("0.00001"), 3)); // 1.000E-5

0
задан James Wilkins 18 January 2019 в 03:45
поделиться

1 ответ

Похоже, что правильной терминологией является «Горячая замена модуля» (MHR - AKA «Живая перезагрузка» или «Горячие обновления / перезагрузка»). После этого ответа я получил часть пути:

https://stackoverflow.com/a/50934814/1236397

Отсутствующая часть была найдена здесь: https://github.com/aspnet/JavaScriptServices/issues/1654#issuecomment-430053872

Кажется, что обе эти ссылки предполагают, что шаблон Visual Studio создается в готовом для производства, а не в разработке. Две проблемы:

  1. Папка ClientApp\dist может быть создана в какой-то момент, если вы создаете вне Visual Studio. Наличие созданной вручную папки dist нарушит текущую перезагрузку. Эта папка должна быть полностью удалена.
  2. Шаблон VS ASP.Net Core Angular CLI готов для обслуживания статических файлов в производственном режиме. Создателю шаблона не удалось обернуть разделы для предотвращения загрузки в режиме разработки.

Для # 2 измените эти строки:

public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}

...

public IConfiguration Configuration { get; }

...

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddSpaStaticFiles(configuration =>
    {
        configuration.RootPath = "ClientApp/dist";
    });
    ...
}

...

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    ...
    app.UseSpaStaticFiles();
    ...
}

на эту:

public Startup(IHostingEnvironment env, IConfiguration configuration)
{
    HostingEnvironment = env;
    Configuration = configuration;
}

...

public IHostingEnvironment HostingEnvironment { get; private set; }
public IConfiguration Configuration { get; }

...

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

...

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    ...
    if (env.IsProduction())
    {
        app.UseSpaStaticFiles();
    }
    ...
}

Однако на этом этапе страницы обновляются полностью. Это потому, что HMR не включен по умолчанию. Вам нужно будет следовать соответствующей документации здесь:

https://github.com/angular/angular-cli/wiki/stories-configure-hmr

Если ссылка вообще не работает, просто найдите документацию, используя запрос configure HMR for angular CLI.

Подсказка: Если вам нужна поддержка IE9-11, взгляните на файл polyfills.ts и игнорируйте строку import 'classlist.js', если она вам не нужна (в противном случае запустите npm install --save classlist.js).

0
ответ дан James Wilkins 18 January 2019 в 03:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: