Impossible de trouver le nom de 'besoin' après la mise à niveau de Angular4
Je veux utiliser Chart.js dans mon Angulaire du projet.
Dans les précédentes Angular2 versions, j'ai été de le faire à l'aide d'un tableau.loader.ts' qui a:
export const { Chart } = require('chart.js');
Ensuite dans le code du composant je viens de
import { Chart } from './chart.loader';
Mais après la mise à jour de la cli 1.0.0 et Angulaire 4, j'obtiens l'erreur: "Impossible de trouver le nom de 'besoin'".
De reproduire l'erreur:
ng new newapp
cd newapp
npm install chart.js --save
echo "export const { Chart } = require('chart.js');" >> src/app/chart.loader.ts
ng serve
Dans mon " tsconfig.json", j'ai
"typeRoots": [
"node_modules/@types"
],
Et dans "l'node_modules/@types/node/index.d.ts" il y a:
declare var require: NodeRequire;
Donc, je suis confus.
BTW, je ne cesse de rencontrer l'avertissement:
[tslint] The selector of the component "OverviewComponent" should have prefix "app"(component-selector)
Si j'ai mis le "préfixe": "" dans mon".angulaire de la cli.json". Pourrait-il raison de changer de " angulaires-cli.json' pour '.angulaire de la cli.json " la cause?
- Le problème est dans votre tsconfig.fichier json. Voir la solution ici: stackoverflow.com/questions/31173738/...
- Merci, en fait, il devrait être dans src/tsconfig.app.json. Pouvez-vous écrire cela comme une réponse?
- Pour l'électron + angulaire 2/4 voir: stackoverflow.com/a/47364843/5248229
Vous devez vous connecter pour publier un commentaire.
Le problème (comme indiqué dans tapuscrit d'erreur TS2304: impossible de trouver le nom de 'besoin'), c'est que les définitions de type de nœud ne sont pas installés.
Avec la prévision d'un genned
with @angular/cli 1.x
, les mesures spécifiques devraient être:Étape 1:
Installer
@types/node
avec l'une des opérations suivantes:Étape 2:
Modifier votre src/tsconfig.app.json fichier et ajoutez le code suivant à la place du vide
"types": []
, qui devrait déjà être là:Si j'ai oublié quelque chose, faites un commentaire et je vais modifier ma réponse.
tsconfig.app.json
soussrc
dossier ajoutant"types": ["node"]
, il n'est pas dans la racine tsconfigdeclare var require: any;
contribué de façon surprenante.J'ai finalement trouvé la solution pour cela, cochez l'une de mes applications fichier de module :
Avis
declare var require: any;
dans le code ci-dessus.Toujours pas sûr de la réponse, mais une solution possible est
Comme pour moi, à l'aide de VSCode et Angulaire 5, n'avait qu'à ajouter un "nœud" de types dans le tsconfig.app.json. Enregistrer et redémarrer le serveur.
JS:
Une chose curieuse, c'est que ce problème "impossible de trouver le nécessitent (", n'arrive pas excuting avec ts-nœud
"types": [ "node" ],
à latsconfig.lib.json
bien.Va travailler dans Angulaire 7+
J'ai été confrontée au même problème, j'étais en ajoutant
à tsconfig.json de dossier racine.
Il y en avait un plus tsconfig.app.json sous src dossier et j'ai résolu ce problème en ajoutant
à tsconfig.app.json fichier sous
compilerOptions
J'ai ajouté
dans mon tsconfig fichier et sa a fonctionné pour moi tsconfig.json fichier ressemble
J'ai déplacé le
tsconfig.json
fichier dans un nouveau dossier pour restructurer mon projet.De sorte qu'il n'était pas en mesure de résoudre le chemin de node_modules/@types de dossier à l'intérieur
typeRoots
propriété de tsconfig.jsonDonc juste mettre à jour le chemin d'accès à partir de
à
Juste s'assurer que le chemin d'accès à node_modules est résolu à partir du nouvel emplacement de la tsconfig.json
Ajoutez la ligne suivante au début du fichier qui donne l'erreur: