Chcę używać Chart.js w moim projekcie Angular. W poprzednich wersjach Angular2 robiłem to dobrze, używając 'chart.loader.ts', który ma:
export const { Chart } = require('chart.js');
Następnie w kodzie komponentu po prostu
import { Chart } from './chart.loader';
Ale po aktualizacji do cli 1.0.0 i Angular 4 pojawia się błąd: „Nie można znaleźć nazwy 'wymaga'”.
Aby odtworzyć błąd:
ng new newapp
cd newapp
npm install chart.js --save
echo "export const { Chart } = require('chart.js');" >> src/app/chart.loader.ts
ng serve
W moim „tsconfig.json” mam
"typeRoots": [
"node_modules/@types"
],
A w „node_modules/@types/node/index.d.ts” znajduje się:
declare var require: NodeRequire;
Więc jestem zdezorientowany.
BTW, ciągle napotykam ostrzeżenie:
[tslint] The selector of the component "OverviewComponent" should have prefix "app"(component-selector)
Chociaż ustawiłem "przedrostek": "" w moim '.angular-cli.json'. Czy to możliwe, ponieważ zmiana z „angular-cli.json” na „.angular-cli.json” była przyczyną?
angular
angular-cli
Thomas Wang
źródło
źródło
Odpowiedzi:
Problem (jak opisano w skrypcie podczas pobierania błędu TS2304: nie można znaleźć nazwy „wymaga” ) polega na tym, że definicje typów węzła nie są zainstalowane.
W przypadku przewidywanego generowania
with @angular/cli 1.x
, konkretne kroki powinny być:Krok 1 :
Zainstaluj za
@types/node
pomocą jednej z następujących opcji:Krok 2 : Edytuj swój plik src / tsconfig.app.json i dodaj następujący plik w miejsce pustego
"types": []
, które powinno już tam być:Jeśli coś przegapiłem, zanotuj komentarz, a zmienię odpowiedź.
źródło
tsconfig.app.json
wsrc
dodawaniu folderu"types": ["node"]
, nie ma go w katalogu głównym tsconfigdeclare var require: any;
pomogła zaskakująco.Wreszcie znalazłem rozwiązanie tego problemu, sprawdź plik modułu aplikacji:
Zauważ
declare var require: any;
w powyższym kodzie.źródło
Będzie działać w Angular 7+
Miałem ten sam problem, dodawałem
do tsconfig.json folderu głównego.
Był jeszcze jeden tsconfig.app.json pod src folderu i mam rozwiązać ten dodając
do pliku tsconfig.app.json pod
compilerOptions
źródło
Jak dla mnie, używając VSCode i Angular 5, musiałem tylko dodać „węzeł” do typów w tsconfig.app.json. Zapisz i zrestartuj serwer.
Ciekawostką jest to, że ten problem „nie może znaleźć wymagania (”), nie występuje podczas uruchamiania za pomocą ts-node
źródło
"types": [ "node" ],
dotsconfig.lib.json
chociaż.Nadal nie jestem pewien odpowiedzi, ale możliwe obejście to
źródło
dodałem
w moim pliku tsconfig i wygląda jak działa dla mnie plik tsconfig.json
źródło
Dodaj następujący wiersz u góry pliku, który powoduje błąd:
źródło
Przeniosłem
tsconfig.json
plik do nowego folderu, aby zrestrukturyzować mój projekt.Więc nie był w stanie rozwiązać ścieżki do folderu node_modules / @ types wewnątrz
typeRoots
właściwości tsconfig.jsonPo prostu zaktualizuj ścieżkę z
do
Aby tylko upewnić się, że ścieżka do node_modules została rozwiązana z nowej lokalizacji tsconfig.json
źródło