Как использовать webpack require с правилом no-any tslint? - PullRequest
0 голосов
/ 11 декабря 2018

Я использовал ionic для создания проекта ionic 4: ionic start app sidemenu --type=angular.Теперь я хочу сделать правила строчки более строгими и ввести 'no-any'.Но, к сожалению, подкладка не работает.Это дает мне:

$ ng lint app
Linting "app"...

ERROR: ./src/test.ts[10, 24]: Type declaration of 'any' loses type-safety. Consider replacing it with a more precise type.

Lint errors found in the listed files.

Проблема в этой строке:

declare const require: any;

этого файла:

// This file is required by karma.conf.js and loads recursively all the .spec and framework files

import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';
import {
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';

declare const require: any;

// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting()
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

Я подозреваю, что require предоставляетсяWebPack.Если я правильно понимаю, он должен быть объявлен в @types/webpack/index.d.ts, и я должен включить его из webpack, который, в свою очередь, будет искать его в @types.Тем не менее, я не могу найти объявление там

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 11 декабря 2018

require является частью модульной системы CommonJS (CJS).Наборы для require можно найти либо в пакете @types/node, либо @types/webpack-env.Установите один из них с npm:

npm install --save-dev @types/node
...