J'essaie de créer un projet Vue et d'utiliser le package npm pour me connecter à l'API Retroachievements.org afin d'obtenir des données, mais j'obtiens une erreur. C'est mon processus du début à la fin pour créer un projet et implémenter un package.
Accédez à mon dossier de projet et créez le projet en utilisant vue cli : vue create test
. Pour les options, je choisis généralement de ne pas inclure le linter, vue version 2 et de tout mettre dans package.json.
cd dans le dossier /test : cd test
并安装 Retroachievements npm 包:npm install --save raapijs
Modifiez App.vue comme suit (excuses pour le formatage du code, je ne sais pas pourquoi le message n'est pas formaté/coloré correctement...) :
const RaApi = require('raapijs');
Exporter la valeur par défaut{ Nom : 'Application',
data: () => ({ api:null, user: '<USER_NAME>', apiKey: '<API_KEY>', }), created() { this.api = new RaApi(this.user, this.apiKey); },
}
Exécutez `npm runserve' et obtenez l'erreur :
Erreur dans./node_modules/raapijs/index.js 2:14-30
Module introuvable : Erreur : Impossible de résoudre 'https' dans 'C:ProjectsWebtestnode_modulesraapijs'
J'utilise Windows 10, Node 16.17.0, npm 8.15.0, vue 2.6.14, vue CLI 5.0.8, raapijs 0.1.2.
La première solution ci-dessous indique qu'il peut l'exécuter sans erreur, mais elle ressemble exactement au code que j'essaie. Quelqu'un peut-il voir la différence et la cause de cette erreur ?
EDIT : J'ai réécrit cet article pour être plus clair sur mon processus et fournir plus d'informations, telles que les versions.
Cette solution fonctionne pour moi. J'ai installé raapijs en utilisant la commande
npm install --save raapijs
. Ensuite, dans mon composant Vue version 2, j'ai utilisé votre code comme ceci :Il semble que le package raapijs soit conçu pour être utilisé dans un environnement Node, et non dans un environnement basé sur un navigateur Vue, c'est pourquoi j'obtiens l'erreur. Le package lui-même recherche le package https intégré à Node, mais comme il ne s'exécute pas dans Node, il ne le trouve pas.
J'ai donc résolu mon problème en consultant le référentiel github du package et en extrayant les points de terminaison de l'API php réellement utilisés et en les utilisant directement dans mon application au lieu d'utiliser un wrapper de package. Pas aussi soigné et ordonné que je l’aurais souhaité, mais c’est quand même une bonne solution.