Я хочу использовать Chart.js в моем проекте Angular. В предыдущих версиях Angular2 я хорошо справлялся с этим, используя «chart.loader.ts», который имеет:
export const { Chart } = require('chart.js');
Затем в коде компонента я просто
import { Chart } from './chart.loader';
Но после обновления до cli 1.0.0 и Angular 4 я получаю сообщение об ошибке: «Не могу найти имя 'require'».
Чтобы воспроизвести ошибку:
ng new newapp
cd newapp
npm install chart.js --save
echo "export const { Chart } = require('chart.js');" >> src/app/chart.loader.ts
ng serve
В моем tsconfig.json у меня есть
"typeRoots": [
"node_modules/@types"
],
А в 'node_modules/@types/node/index.d.ts' есть:
declare var require: NodeRequire;
Так что я запутался.
Кстати, я постоянно сталкиваюсь с предупреждением:
[tslint] The selector of the component "OverviewComponent" should have prefix "app"(component-selector)
Хотя я установил «префикс»: «» в моем '.angular-cli.json'. Могло ли это из-за перехода с angular-cli.json на .angular-cli.json причина?
angular
angular-cli
Томас Ван
источник
источник
Ответы:
Проблема (как указано в машинописном тексте с ошибкой TS2304: не удается найти имя 'require' ) заключается в том, что определения типов для узла не установлены.
В случае спроектированной генерации
with @angular/cli 1.x
конкретные шаги должны быть следующими:Шаг 1 :
Установите
@types/node
любое из следующих средств:Шаг 2 : Отредактируйте файл src / tsconfig.app.json и добавьте следующее вместо пустого
"types": []
, которое уже должно быть там:Если я что-то пропустил, напишите комментарий, и я отредактирую свой ответ.
источник
tsconfig.app.json
приsrc
добавлении папки"types": ["node"]
, ее нет в корневом tsconfigdeclare var require: any;
удивление помог.Наконец, у меня есть решение для этого, проверьте мой файл модуля приложения:
Обратите внимание
declare var require: any;
на приведенный выше код.источник
Будет работать в Angular 7+
Я столкнулся с той же проблемой, я добавлял
в tsconfig.json корневой папки.
Был еще один tsconfig.app.json под Src папки , и я получил решил эту проблему путем добавления
в файл tsconfig.app.json в
compilerOptions
источник
Как по мне, при использовании VSCode и Angular 5 нужно было только добавить «узел» к типам в tsconfig.app.json. Сохраните и перезапустите сервер.
Любопытно то, что эта проблема "не может найти require (" не возникает при исключении с помощью ts-node
источник
"types": [ "node" ],
к этомуtsconfig.lib.json
.Все еще не уверен в ответе, но возможное решение:
источник
я добавил
в моем файле tsconfig, и он работал у меня, файл tsconfig.json выглядит как
источник
Добавьте в верхнюю часть файла следующую строку, которая сообщает об ошибке:
источник
Я переместил
tsconfig.json
файл в новую папку, чтобы реструктурировать свой проект.Таким образом, он не смог разрешить путь к папке node_modules / @ types внутри
typeRoots
свойства tsconfig.jsonТак что просто обновите путь от
в
Чтобы просто убедиться, что путь к node_modules разрешен из нового местоположения tsconfig.json
источник