未捕获的类型错误: ace.acequire不是一个函数。

问题描述 投票:0回答:1

我在其中一个组件中使用了ng2-ace-editor,并尝试使用以下方法运行测试用例。ng test 命令。但是由于某些原因,它却抛出了 Uncaught TypeError: ace.acequire is not a function 错误。

这是我的.spec.ts文件代码。

import { NewModule } from './new.module';
import {AceEditorModule} from 'ng2-ace-editor';
import 'brace';
import 'brace/mode/json';
import 'brace/ext/language_tools';

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

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [ MaterialModule, ReactiveFormsModule, FormsModule, HttpModule, 
        HttpClientTestingModule, RouterTestingModule, BrowserAnimationsModule,
        AceEditorModule
      ],
      declarations: [ NewModule ]
    })
    .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(NewModule);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

我不知道该如何解决这个问题 我在某个地方知道brace是依赖关系,需要安装这个。我确实安装了brace,但它没有工作。我试着在angular.json中的脚本中给出依赖文件,但它没有工作。

下面是代码。

"scripts": [
   "node_modules/ace-builds/src-min/ace.js",
   "node_modules/ace-builds/src-min/ext-language_tools.js",
   "node_modules/ace-builds/src-min/mode-javascript.js",
   "node_modules/ace-builds/src-min/mode-typescript.js",
   "node_modules/ace-builds/src-min/mode-json.js",
   "node_modules/ace-builds/src-min/theme-eclipse.js"
]

因为这个原因,其他的规范文件没有运行,而karma抛出了下面提到的错误。请建议我需要做什么。

Uncaught TypeError: ace.acequire is not a function
    at language_tools.js:1954
    at Object../node_modules/brace/ext/language_tools.js (language_tools.js:1955)
    at __webpack_require__ (bootstrap:76)
angular unit-testing jasmine karma-jasmine ace-editor
1个回答
0
投票

我也遇到了同样的问题,并通过在xx.component中添加代码blow进行了修复 .ts 文件不 .spec.ts 文件。

import 'brace';
© www.soinside.com 2019 - 2024. All rights reserved.