Dans VS Code, j'obtiens cette erreur, "Impossible de charger le module. Vous avez tenté de charger plus joli à partir de package.json '

21

Lorsque j'utilise VS Code et que j'ouvre un projet, je reçois cette notification dans le coin inférieur droit:

Failed to load module. If you have prettier or plugins referenced in package.json, ensure you have runinstallation de npmAttempted to load prettier from package.json.

Source: Prettier Code Format (Extension)

L'exécution de l'installation de npm ne résout pas ce problème. Quelqu'un sait-il pourquoi c'est ou ce que je peux faire pour y remédier?

ghostagent151
la source
Avoir le même problème également. Êtes-vous derrière le proxy par hasard?
Bryce
Il semble qu'un chemin soit rompu sur ma machine ou qu'il manque quelque chose. Nous avons un package.json avec un script pour exécuter plus joli et un linter. L'exécution du script à partir du fichier package.json ne s'applique pas plus joli mais si je le formate moi-même (option + shift + f sur un mac) cela fonctionne. Tellement bizarre et ennuyeux d'avoir à formater manuellement chaque fichier.
ghostagent151
Cela semble être un "ajout" assez récent à VS Code. Malgré l'utilisation plus jolie dans le passé, nous n'avons pas observé ce problème. Je ne sais pas à partir de quelle version de VS Code cela est devenu un problème.
Manfred
Avoir le même problème depuis quelques jours. Pas de proxy ou de pare-feu - quelque chose s'est cassé plus joli dans la dernière mise à jour de VS Code
Hemal
3
Il s'agit du problème lié à github. Ils recherchent plus d'informations sur ce problème (et si disponible un repo qui peut être partagé). github.com/prettier/prettier-vscode/issues/1066
Kasper

Réponses:

16

C'est une solution qui a fonctionné pour moi

1. Installez Prettier Globalement via npm si vous ne l'avez jamais installé globalement

npm i prettier -g

2. Recherchez et utilisez les Prettier Pathparamètres d'extension dans vos paramètres de code VS

entrez la description de l'image ici

// Vous pouvez naviguer vers VS Code Settings > Extensions > Prettierpour tous les paramètres d'extension plus jolis

3. Mettez Prettier Pathà jour votre Prettier installé dans le monde.

Par exemple

/usr/local/lib/node_modules/prettier (Mac OS)

\AppData\Roaming\npm\node_modules\prettier (Les fenêtres)

Tunji Oyeniran
la source
J'ai installé Prettier dans le monde. Lorsque j'entre dans les paramètres VS Code, je recherche Prettier Path. Je vois 2 options ici, Prettier:Config Pathet Prettier: Prettier Path. J'utilise un mac. Dois-je ajouter /usr/local/lib/node_modules/prettieraux deux chemins ou juste au premier?
ghostagent151
1
@ ghostagent151 juste le dernier "Prettier: Prettier Path" selon la capture d'écran.
donovan
Voici un autre problème que je vois. Si je télécharge l'extension plus jolie en code vs, j'ai mes paramètres configurés pour que lors de l'enregistrement, elle s'applique automatiquement plus jolie à mon code. Cependant, il semble y avoir deux versions différentes de plus jolies appliquées. Si je lance à npm run prettierpartir de la ligne de commande, par exemple, les variables qui ont des chaînes avec des guillemets doubles sont converties en guillemets simples. Si j'enregistre et que le format automatique est appliqué, ils sont convertis en guillemets doubles. Je ne sais pas ce qui se passe avec ça.
ghostagent151
1
@ ghostagent151 Il s'agit d'un problème différent. L'exécution npm run prettierutilise le plus joli local de votre projet node_moduless'il en package.jsonexiste un dans le projet. Mon conseil est de désactiver VS Code formatOnSavesi vous utilisez des règles de formatage personnalisées pour votre projet. Pour éviter l'écrasement du format.
Tunji Oyeniran
1
Votre chemin d'accès à vos modules installés globalement variera non seulement en fonction du système d'exploitation mais de la façon dont vous avez installé npm (c'est-à-dire nvm, etc.). Un moyen facile d'obtenir le chemin est de courirnpm root -g
BoDeX
2

Mise à jour

Cela fonctionne maintenant pour moi avec prettier-vscode4.1.1 et prettier2.0.4, essayez-le. Je peux utiliser la version groupée ou installée localement de plus jolie.

Changements notables :

  • [4.0.0] Mise à jour plus jolie vers 2.0
  • [4.1.0] Ajout d'une option de configuration avecNodeModules pour permettre le traitement des fichiers dans le dossier node_modules [par défaut: false]
  • [4.1.0] Supporte le chargement de Prettier à partir de node_modules même s'il n'apparaît pas comme une dépendance directe dans un package.json

Message d'origine

J'ai rencontré ce problème lors de l'inspection du code source d'un package externe sous node_modules.

Une solution de contournement consiste à supprimer l' prettierentrée dans package.jsonce package - aucune prettierinstallation locale / globale n'est nécessaire. Exemple :

{
  "devDependencies": {
    ...
    "prettier": "^1.19.1", // remove this line completely
  },
}

Conservez la package.jsonvalidité - pas de virgule de fin, ne vous contentez pas de commenter la ligne. La raison pour laquelle cela fonctionne est:

L'extension recherche l'arborescence jusqu'à ce que nous déposions un package.json. Si ce package.json contient plus joli, l'extension l'utilise, sinon il reviendra à utiliser la version groupée de plus jolie. Lien

Je suppose que l'extension veut utiliser à prettierpartir du package, même si c'est le cas devDependencies.

Il ne devrait pas y avoir de mal à laisser tomber devDependencyun paquet node_modules. Cela permet également d'utiliser la prettierversion fournie avec prettier-vscode(aucune installation nécessaire).

ford04
la source
1

Je viens de tomber dessus et j'ai découvert que j'avais une erreur de syntaxe dans mon fichier package.json. Il y avait une virgule de fin sur une ligne, et cela seul semblait être la cause première pour moi.

J'ai remarqué cela parce que j'ai vu la sortie suivante en essayant d'exécuter des tests angulaires:

C:\... [feature/migrate-away-from-angular-http +2 ~6 -0 | +0 ~5 -0 !]> ng test
10% building 3/3 modules 0 active20 11 2019 21:11:18.638:WARN [karma]: No captured browser, open http://localhost:9876/
20 11 2019 21:11:19.575:INFO [karma-server]: Karma v4.1.0 server started at http://0.0.0.0:9876/
20 11 2019 21:11:19.576:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
20 11 2019 21:11:19.594:INFO [launcher]: Starting browser Chrome

ERROR in ./src/app/app.component.spec.ts
Module not found: SyntaxError: C:\...\package.json (directory description file): SyntaxError: C:\...\package.json (directory description file): SyntaxError: Unexpected token } in JSON at position 167
 @ ./src/app/app.component.spec.ts 7:31-75
 @ ./src sync \.spec\.ts$
 @ ./src/test.ts
ERROR in ./src/app/app.component.ts
Sam Storie
la source
1

Lors de la configuration de Prettier, il est important de le configurer par projet. Tous les projets n'utilisent pas le même style de code, il est donc important de respecter le style du projet dans lequel vous travaillez actuellement.

Le dépôt de démonstration bahmutov/prettier-config-examplea deux sous-dossiers, chacun avec son style de code distinct, appliqué par Prettier. En réalité, chacun de vos repos aura son style; J'utilise des sous-dossiers afin de garder l'exemple simple.

npm install --save-dev --save-exact prettier

Shanwaz Ghulam
la source
1

J'ai essayé toutes les solutions fournies ici, n'a pas aidé. La mise à jour de Visual Studio Code a résolu ce problème.

Psy
la source
0

Correction de ce problème en faisant npm installglobalement.

J'ai eu ce problème lorsque j'ai nettoyé mon node_nodules. J'avais eslintinstallé avec plus jolie plus globalement. Et quand j'ai supprimé node_modulescette erreur a indiqué apparaître.

vikrantnegi007
la source