Ich versuche, ein Vue-Projekt zu erstellen und das npm-Paket zu verwenden, um eine Verbindung zur Retroachievements.org-API herzustellen, um einige Daten abzurufen, erhalte jedoch eine Fehlermeldung. Dies ist mein Prozess von Anfang bis Ende zum Erstellen eines Projekts und zum Implementieren eines Pakets.
Navigieren Sie zu meinem Projektordner und erstellen Sie das Projekt mit Vue CLI: vue create test
. Bei den Optionen entscheide ich mich normalerweise dafür, den Linter, Vue Version 2, nicht einzubinden und alles in package.json abzulegen.
cd in den /test-Ordner: cd test
并安装 Retroachievements npm 包:npm install --save raapijs
Ändern Sie App.vue wie folgt (Entschuldigung für die Codeformatierung, ich bin mir nicht sicher, warum der Beitrag nicht richtig formatiert/farbig ist...):
const RaApi = require('raapijs');
Standardwert exportieren{ Name: „Bewerbung“,
data: () => ({ api:null, user: '<USER_NAME>', apiKey: '<API_KEY>', }), created() { this.api = new RaApi(this.user, this.apiKey); },
}
Führen Sie „npm runserve“ aus und erhalten Sie die Fehlermeldung:
Fehler in./node_modules/raapijs/index.js 2:14-30
Modul nicht gefunden: Fehler: „https“ in „C:ProjectsWebtestnode_modulesraapijs“ konnte nicht aufgelöst werden
Ich verwende Windows 10, Node 16.17.0, npm 8.15.0, vue 2.6.14, vue CLI 5.0.8, raapijs 0.1.2.
Die erste Lösung unten besagt, dass er es ohne Fehler ausführen kann, aber es sieht genauso aus wie der Code, den ich versuche. Kann jemand den Unterschied und die Ursache dieses Fehlers erkennen?
BEARBEITEN: Ich habe diesen Beitrag umgeschrieben, um meinen Prozess klarer darzustellen und mehr Informationen, wie z. B. Versionen, bereitzustellen.
这个解决方案适合我。我使用
npm install --save raapijs
命令安装了 raapijs。然后在我的 Vue 版本 2 组件中我使用了您的代码,如下所示:看来 raapijs 包被设计为在 Node 环境中使用,而不是在 Vue 基于浏览器的环境中使用,所以这就是我收到错误的原因。该包本身正在寻找 Node 中内置的 https 包,但由于它没有在 Node 中运行,所以没有找到它。
因此,我通过查看包的 github 存储库并提取正在使用的实际 php API 端点并直接在我的应用程序中使用这些端点来解决我的问题,而不是使用包包装器。不像我希望的那么干净整洁,但仍然是一个不错的解决方案。