小编Ras*_*sen的帖子

如何使用TypeScript和webpack创建Web worker

当我尝试使用Web worker时,我遇到了一些正确编译我的打字稿的问题.

我有一个像这样定义的工人:

onmessage = (event:MessageEvent) => {
  var files:FileList = event.data;
    for (var i = 0; i < files.length; i++) {
        postMessage(files[i]);
    }
};
Run Code Online (Sandbox Code Playgroud)

在我的应用程序的另一部分,我正在使用webpack worker loader来加载我的worker,如下所示: let Worker = require('worker!../../../workers/uploader/main');

然而,当我需要编译应用程序时,我会遇到一些问题,使得打字稿声明不会对我大喊大叫.根据我的研究,我必须在我的tsconfig文件中添加另一个标准库,以公开worker需要访问的全局变量.这些我指定如下:

{
     "compilerOptions": {
          "lib": [
               "webworker",
               "es6",
               "dom"
          ]
     }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我运行webpack让它构建一切时,我得到了一堆这样的错误: C:/Users/hanse/Documents/Frontend/node_modules/typescript/lib/lib.webworker.d.ts:1195:13 Subsequent variable declarations must have the same type. Variable 'navigator' must be of type 'Navigator', but here has type 'WorkerNavigator'.

所以我的问题是:如何指定webworker使用lib.webworker.d.ts定义,其他一切遵循正常的定义?

web-worker typescript webpack

26
推荐指数
3
解决办法
2万
查看次数

__ngcc_entry_points__.json 是否应该添加到源代码管理中

在更新到 Angular 9.1 期间,__ngcc_entry_points__.json我在项目的所有根文件夹中都出现了一个名为的文件。这个文件应该被添加到源代码管理中,还是被忽略?

它似乎只包含一些哈希信息,所以我认为它可以被忽略?

angular angular-ivy

12
推荐指数
1
解决办法
2209
查看次数

Linq distinct不会调用Equals方法

我有以下课程

public class ModInfo : IEquatable<ModInfo>
{
    public int ID { get; set; }
    public string MD5 { get; set; }

    public bool Equals(ModInfo other)
    {
        return other.MD5.Equals(MD5);
    }

    public override int GetHashCode()
    {
        return MD5.GetHashCode();
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用如下方法将一些数据加载到该类的列表中:

public void ReloadEverything() {
    var beforeSort = new List<ModInfo>();
    // Bunch of loading from local sqlite database. 
    // not included since it's reload boring to look at
    var modinfo = beforeSort.OrderBy(m => m.ID).AsEnumerable().Distinct().ToList();
}
Run Code Online (Sandbox Code Playgroud)

问题是Distinct()呼叫似乎没有做到这一点.仍然存在彼此相等的对象.

根据这篇文章:https://msdn.microsoft.com/en-us/library/vstudio/bb348436%28v=vs.100%29.aspx这 是你应该如何做出不同的工作,但它不似乎是在ModInfo对象上调用Equals方法.是什么导致这种情况发生? …

c# linq

5
推荐指数
1
解决办法
4001
查看次数

在 docker 中构建 rust 项目导致 Cargo 在下载依赖项时卡住

我有一个项目尝试使用 rust 二进制文件构建 docker 映像,但是当我尝试使用 Cargo 下载二进制文件时它卡住了。运行图像-it,卷挂载 src,然后cargo build手动运行可以正常工作。

Dockerfile:

FROM rust:1.31.1 AS builder
# Install protoc
RUN apt-get update && apt-get install -y unzip \
    && PROTOC_ZIP=protoc-3.3.0-linux-x86_64.zip \
    && curl -OL https://github.com/google/protobuf/releases/download/v3.3.0/$PROTOC_ZIP \
    && unzip -o $PROTOC_ZIP -d /usr/local bin/protoc \
    && rm -f $PROTOC_ZIP

COPY . .
RUN cargo test
RUN cargo test --release -- --ignored
RUN cargo build --release

FROM debian
COPY --from=builder /target/release/brqueue /bin/brqueue
RUN chmod +x /bin/brqueue
CMD ["/bin/brqueue"]
Run Code Online (Sandbox Code Playgroud)

我已经尝试过 rust …

rust docker rust-cargo dockerfile

5
推荐指数
1
解决办法
837
查看次数

Angular:使用选定的文件进行图像预览

作为我们应用程序的一部分,我们希望在用户上传的文件在服务器上实际可用之前预览它们。为此,我尝试了几件事:

  • 将文件直接分配给 background-image 样式属性。(都有 url() 和没有)
  • 生成一个 blob 使用URL.createObjectURL(),给出WARNING: sanitizing unsafe style value blob:http://localhost:4200/16db9654-3119-4d55-9b59-715c2d31b334 (see http://g.co/ng/security#xss).
    • url()在 blob url 周围添加:WARNING: sanitizing unsafe style value url(blob:http://localhost:4200/86da46b1-5431-46d0-8757-13c75e09abc2) (see http://g.co/ng/security#xss).
  • 直接使用 DomSanitizer 清理 blob url ERROR Error: Required a safe Style, got a URL
    • url()在模板中添加经过消毒的值WARNING: sanitizing unsafe style value url(SafeValue must use [property]=binding: blob:http://localhost:4200/72561f3d-0ff7-435b-8ac9-ec3a7c0cfbb0 (see http://g.co/ng/security#xss)) (see http://g.co/ng/security#xss).
    • url()在清理之前在 blob url 周围添加ERROR Error: Required a safe Style, got a URL

在这些过程中,背景图像实际上都没有出现。我使用 chrome 检查器检查了 dom,在任何情况下都没有实际设置属性。 …

angular

3
推荐指数
1
解决办法
5724
查看次数

如何对对话框交互进行单元测试

我有以下课程:

public class DirectoryFinder : IDirectoryFinder
{
    public string GetDirectory(string whereTo)
    {
        FolderBrowserDialog dialog = new FolderBrowserDialog {Description = whereTo};
        DialogResult result = dialog.ShowDialog();
        return result == DialogResult.OK ? dialog.SelectedPath : string.Empty;
    }
}
Run Code Online (Sandbox Code Playgroud)

我将如何验证它返回正确的数据?例如。string.Empty还是在对话框中选择的内容取决于用户单击的内容?

我正在使用NUnit作为测试框架。

c# nunit unit-testing dialog

2
推荐指数
1
解决办法
2918
查看次数