小编Kim*_*tes的帖子

Karma webpack输出多个"webpack:等到捆绑完成"

在最近发布的webpack 1.14.0/karma 1.4.0/karma-webpack 2.2.0之后,当karma开始其webpack构建时,我现在看到了很多这些消息.

webpack: wait until bundle finished:
Run Code Online (Sandbox Code Playgroud)

有时我看到多达6-8个,他们似乎正在使构建更长.例如,这个:

Hash: 255562a2a96fffe34fae
Version: webpack 1.14.0
Time: 408ms
webpack: bundle is now VALID.
webpack: bundle is now INVALID.
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
ts-loader: Using typescript@2.1.5 and C:\git\project\tsconfig.json
Run Code Online (Sandbox Code Playgroud)

到目前为止,它还没有阻止我的构建,但至少它似乎现在已经锁定,即使是暂时的.其他人看到这个?如果它是我的结果,我想要清理它,但正如我所说,我的配置文件没有改变,但现在已经出现了最近发布的karma/webpack系列产品过去3周.

我的问题是:

  1. 这条消息是什么意思?
  2. 如何解决创建它们的问题?

karma-runner karma-jasmine webpack karma-webpack

20
推荐指数
2
解决办法
6570
查看次数

如何禁用 React Material UI 自动完成表单中的 ENTER 键

我在 React 组件中有一个 Material UI 自动完成表单。它工作得很好,除了 ENTER 键当前正在清除输入字段。我只是希望当用户按下 ENTER 键时输入字段不会被清除。我搜索了 Stackoverflow 上的所有类似问题,没有一个涉及忽略自动完成表单中的此键(它们主要处理常规输入表单)。下面我列出了所有我尝试过但不起作用的方法。

在这种情况下如何禁用 ENTER 键?

我尝试忽略回车键,例如:

onKeyPress={(event) => {return event.key !== 'Enter';}}
Run Code Online (Sandbox Code Playgroud)

我还尝试通过这样做来阻止自动完成输入键被视为表单提交(希望它不会清除表单):

onKeyPress={(event) => {
    if (event.key === 'Enter') {
      event.preventDefault();
      return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我什至尝试过:

onKeyPress={(event) => {
    if (event.key === 'Enter') {
      event.stopPropagation();
      return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

是的,我也尝试在上面的两个例子中使用onKeyDown代替。onKeyPress

最后,我尝试使用disableClearable自动完成组件中的选项,如下所示:

  const onInputChange = useCallback(
    (_event: ChangeEvent<{}>, newInputValue: string) => {
      debounceFetchData(newInputValue);
    },
    [debounceFetchData]
  );

  return (
    <section className={classes.container}>
      <SearchIcon …
Run Code Online (Sandbox Code Playgroud)

javascript autocomplete reactjs material-ui

7
推荐指数
1
解决办法
9157
查看次数

TSLint 无法识别正确的按位运算符

遗憾的是,这个有效的代码被 TSLint 的默认设置认为是疏忽的:

export const NO_FLAG: number = 0x0000;
export const DESTROY_FLAG: number = 0x0001;
export const NULL_FLAG: number = 0x0100;
export const START_FLAG: number = 0x0200;
export const STOP_FLAG: number = 0x0400;

export function getPackedFlags(destroy: boolean,
                               nullThing: boolean,
                               start: boolean,
                               stop: boolean): number {
    const bitFlags: number = ((destroy) ? DESTROY_FLAG: NO_FLAG) |
                            ((nullThing) ? NULL_FLAG: NO_FLAG) |
                            ((start) ? START_FLAG: NO_FLAG) |
                            ((stop) ? STOP_FLAG: NO_FLAG);
    return bitFlags;
}
Run Code Online (Sandbox Code Playgroud)

执行上述操作会产生这种输出:

tslint --project ./tsconfig.json --format verbose --force

ERROR: (no-bitwise) …
Run Code Online (Sandbox Code Playgroud)

lint bitwise-or typescript tslint

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

使用Angular2 TestBed模拟具有非具体类接口参数的服务

我有一个组件,我正在尝试使用TestBed进行设置和测试.

该组件包含一个类,该构造函数中的参数是一个接口,而不是具体的类.我选择使用的任何类(无论是真实的,还是用于单元测试的mok)都满足此接口.但是,当我构建在TestBed中使用此服务的组件时,我无法弄清楚如何将该参数定义到TestBed配置.

以下是组件的TestBed配置:

describe('PanelContentAreaComponent', () => {
  let component: PanelContentAreaComponent;
  let fixture: ComponentFixture<PanelContentAreaComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ PanelContentAreaComponent
          ],
      providers:[
        MenuCommandService, ProcedureDataService, IOpenService],
      schemas: [CUSTOM_ELEMENTS_SCHEMA]
    })
    .compileComponents();
  }));
Run Code Online (Sandbox Code Playgroud)

在TestBed中构造有问题的服务是ProcedureDataService.它的定义如下:

@Injectable()
export class ProcedureDataService {

serverOpenFile: OpenFile;

constructor(private _openService: IOpenService) {
    this.serverOpenFile = emptyFileStatus;
}
Run Code Online (Sandbox Code Playgroud)

构造函数中的一个参数ProcedureDataServiceIOpenService其定义为:

export interface IOpenService {
    openFile(fileType: string, dataType: string, filePath: string) ;
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这是一个接口,而不是具体的类.

在我的服务单元测试中,我们通过如下实现来模拟IOpenService:

export class mockOpenService implements IOpenService{

    constructor(){}

    openFile(fileType: string, dataType: string, filePath: string) {
        let fileContent: …
Run Code Online (Sandbox Code Playgroud)

javascript testbed angular

4
推荐指数
1
解决办法
1935
查看次数

使用Visual Studio对本机VS C++的gtest单元测试执行代码覆盖

朋友们,

在过去的两周里,我一直在研究单元测试代码覆盖率工具,根据我们的特定需求进行评估.我想评估的最后一个是Visual Studio自己的本机C++单元测试代码覆盖率.在我们的解决方案中,我们有以下内容:

  • 完整的Visual Studio 2013开发环境,具有多个100 k代码行的大型项目
  • 已经在GTEST中编写了900多个单元测试(在构建过程中工作和执行)并在此环境中使用本机C++代码(非托管)
  • 解决方案中的十几个项目

我想要做的就是搞清楚

  • 如果我可以使用Visual Studio代码覆盖率分析工具在我的gtest单元测试中报告结果
  • 获取每次单元测试或运行时生成的代码覆盖率结果(我们的单元测试在构建后步骤中自动运行)

我浏览了这些论坛,MSDN和其他网站(如stackoverflow),我找不到一个很好的指导来使这个工具组合工作.正如我所说,我的解决方案,项目和单元测试运行良好,但是为了添加代码覆盖率,我没有看到如何使用Microsoft自己的Visual Studio代码覆盖率.

我已经评估了一些其他软件包,如软件验证,语义设计,OpenCPPCoverage和Bullseye.我希望尝试我们的Visual Studio的代码覆盖组件,因为它已经是我们的开发环境的一部分,但我似乎无法弄清楚它是如何或是否有效.

有帮助吗?

感谢您提供任何反馈,信息.

c++ unit-testing code-coverage googletest

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

Typescript Enums 编译为 d.ts 和 Javascript 输出

在我的原始 TS 文件 ( foo.ts) 中,我有以下内容:

export const enum ACCESS_STATE {
    master,
    readonly,
    none,
    failed
}
Run Code Online (Sandbox Code Playgroud)

Typescript 编译器完成后,输出 ( foo.d.ts) 文件正确包含以下内容:

const enum ACCESS_STATE {
    master = 0,
    readonly = 1,
    none = 2,
    failed = 3,
}
Run Code Online (Sandbox Code Playgroud)

然而,生成的输出 ( ) 文件根本foo.js没有对其或其值的引用。ACCESS_STATE这不是foo.js直接的问题,因为编译器会正确地替换ACCESS_STATE.master和其他对硬值 0(等)的引用。

问题是我有其他需要 foo 并且想要重用枚举的 javascript模块。

是否可以让编译器在 中生成可foo.js引用且可以使用的东西?例如:

var ACCESS_STATE = (function () {
    function ACCESS_STATE () {
        this.master = 0;
        this.readonly = 1;
        this.none = 2; …
Run Code Online (Sandbox Code Playgroud)

javascript enums compilation typescript

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

解析所有出现的分隔符

我是Bash的新手,但希望这很简单.我有以下几行代码:

LOCATION='C:\\proj\\myproject\\node_modules\\protractor\\node_modules\\webdriver-manager\\selenium\\chromedriver_2.29.exe'
FILENAME=${LOCATION}
Run Code Online (Sandbox Code Playgroud)

如何解析所有反斜杠,转到路径的末尾,提取文件名并将其分配给$FILENAME(在本例中为"chromedriver_2.29.exe")?

bash parsing delimiter backslash

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

Angular无法在组件使用Material Autocomplete的displayWith组件方法中访问“this”

在最新版本的 Angular 中,我使用了以下 HTML:

    <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn">
    <mat-option *ngFor="let entity of entityNames" [value]="entity.EntityId">
     {{ entity.EntityName }}
    </mat-option>
Run Code Online (Sandbox Code Playgroud)

在我的常规角度分量中,该displayFn方法如下所示:

displayFn(entityId: number): string {
  const name = (entityId && entityId > 0) ? this.entityNames?.find(entityName => entityName.EntityId === entityId).EntityName : '';
  return name;
}
Run Code Online (Sandbox Code Playgroud)

问题是,我的组件“这个”。不可用,对其成员的任何访问都会失败。

autocomplete callback this angular-material angular

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

npm 无法处理版本 #-- 无法识别 `npm 版本补丁` 中的前导 0- 导致 ```npm !ERR```

我正在使用节点 7.10.1(具有 npm 4.2.0)。我在 Windows 7 SP1 上运行。

在过去的其他项目中,我使用以下内容来修改我的 package.json 中的版本号:

  • git add .
  • git commit - m "reason for change"
  • npm version patch

这在我完成的其他 3 个项目中无缝地工作。

现在,当我在当前项目上运行它时,出现以下错误/输出:

> npm version patch
npm ERR! npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]
npm ERR! (run in package dir)
npm ERR! 'npm -v' or 'npm --version' to print npm version (4.2.0)
npm ERR! 'npm view <pkg> version' to view a …
Run Code Online (Sandbox Code Playgroud)

git version npm package.json

0
推荐指数
1
解决办法
1179
查看次数