小编ret*_*ame的帖子

打字稿:从包中导入类型而不依赖同一包中的其他类型

我有一个用 Typescript(我们称之为libd)编写的 NPM 包,它提供了一些类和类型。它们导出到一个index.ts文件中,如下所示:

export { ClassA } from "./ClassA";
export { TypeB } from "./TypeB";
Run Code Online (Sandbox Code Playgroud)

ClassA使用外部依赖(我们称之为depc)被设置为在peerDependencies package.json。这TypeB只是一种没有任何外部依赖关系的类型。

package.json主字段中设置为dist/index.js(它被转译到的位置)和类型设置为dist/index.d.ts

tsconfig.json该的libd包看起来是这样的:

{
  "compilerOptions": {
    "target": "ES2019", 
    "module": "commonjs",
    "declaration": true,
    "outDir": "dist",
    "rootDir": "src",
    "inlineSources": true,
    "inlineSourceMap": true
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我TypeB在另一个库中使用它(让我们称之为libe),而无需导入ClassA并且没有depc安装依赖项。该libd库是通过 NPM 安装的,类型是这样导入的:

import { TypeB } from "libd";
Run Code Online (Sandbox Code Playgroud)

该 …

import node.js typescript

6
推荐指数
1
解决办法
440
查看次数

如何使用 .NET 6 的新的最小托管模型在集成测试中使 Serilog 保持沉默

我有一个 .NET 6 Web API 项目,其中包含一些 API 端点的现有集成测试。该项目使用 Serilog 进行日志记录,到目前为止一切都很好。

我将代码迁移到新的最小托管模型,删除了进程中的 Startup 类。我修复了集成测试以使用新模型,到目前为止一切都在运行。我遇到的唯一问题是,集成测试现在垃圾邮件日志语句。

对于 Serilog,我有两个阶段的设置,这就是 Program.cs 的样子:

public partial class Program
{
  public static string ApplicationVersion => typeof(Program).Assembly
                                              .GetCustomAttribute<AssemblyInformationalVersionAttribute>()
                                              .InformationalVersion;

  /// <summary>
  /// Hack to prevent duplicate logger initialization when integration tests run in parallel.
  /// </summary>
  public static bool IsIntegrationTestRun = false;

  public static int Main(string[] args)
  {
    var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production";

    if (!IsIntegrationTestRun)
    {
      // extra logger only for app startup
      Log.Logger = new LoggerConfiguration()
        .Enrich.FromLogContext() …
Run Code Online (Sandbox Code Playgroud)

c# integration-testing serilog asp.net-core .net-6.0

6
推荐指数
1
解决办法
2095
查看次数

如何使用 kustomize 复制覆盖层中的基础对象?

我有一个基础对象(自定义资源),我需要多次使用不同的名称并添加(或更改)一个属性。所以我定义了一个基本 yaml 文件并在覆盖层中引用它kustomization.yaml

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 base\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n|   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 base.ClusterOutput.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my-env\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n
Run Code Online (Sandbox Code Playgroud)\n

现在我需要更新该metadata.name字段并添加一个可以通过补丁完成的属性kustomization.yaml

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 base\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n|   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 base.ClusterOutput.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my-env\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n
Run Code Online (Sandbox Code Playgroud)\n

直到这里它都按预期工作,但在某些环境中我需要多个自定义资源实例,并且我不知道如何做到这一点。我尝试了多个补丁,但它们相互覆盖,最终得到一个具有最后一个补丁的对象。\n我不想编写多个基础对象,在某些环境中我只需要一个,并且除了名称之外它们是相等的无论如何,还有一个属性。\n有什么方法可以用 kustomize 来做到这一点吗?

\n

kustomize

6
推荐指数
0
解决办法
812
查看次数