我正在嘗試制作一個 Vue 專案并使用 npm 包連接到 retroachievements.org api 以獲取一些資料,但我遇到了錯誤。這是我從頭到尾創建專案和實施包的程序。
導航到我的專案檔案夾并使用 vue cli 創建專案:
vue create test. 對于選項,我通常選擇不包含 linter,vue 版本 2,并將所有內容放在 package.json 中。cd 進入 /test 檔案夾:
cd test并安裝 retroachievements npm 包:npm install --save raapijs將 App.vue 修改為以下內容(對代碼格式化表示歉意,不知道為什么帖子沒有正確格式化/著色......):
const RaApi = 要求('raapijs');
匯出默認{名稱:'App',
data: () => ({ api:null, user: '<USER_NAME>', apiKey: '<API_KEY>', }), created() { this.api = new RaApi(this.user, this.apiKey); },}
運行 `npm run serve' 并得到錯誤:
./node_modules/raapijs/index.js 中的錯誤 2:14-30
未找到模塊:錯誤:無法決議“C:\Projects\Web\test\node_modules\raapijs”中的“https”
我在 Windows 10、節點 16.17.0、npm 8.15.0、vue 2.6.14、vue CLI 5.0.8、raapijs 0.1.2 上。
下面的第一個解決方案說他可以毫無錯誤地運行它,但它看起來與我正在嘗試的代碼完全相同。任何人都可以看到此錯誤的區別和原因嗎?
編輯:我改寫了這篇文章,以更清楚地了解我的流程并提供更多資訊,例如版本。
uj5u.com熱心網友回復:
這個解決方案對我有用。npm install --save raapijs我用命令安裝了 raapijs 。然后在我的 Vue 版本 2 組件中,我使用了您的代碼,如下所示:
const RaApi = require('raapijs');
export default {
data: () => ({
api: null,
user: '<USER_NAME>',
apiKey: '<API_KEY>',
}),
created() {
this.api = new RaApi(this.user, this.apiKey);
},
};
uj5u.com熱心網友回復:
似乎 raapijs 包被設計用于 Node 環境,而不是 Vue 的基于瀏覽器的環境,所以這就是我收到錯誤的原因。該包本身正在尋找 Node 中內置的 https 包,但由于它沒有在 Node 中運行,因此沒有找到它。
因此,我通過查看包的 github 存盤庫并提取正在使用的實際 php API 端點并直接在我的應用程式中使用這些端點來解決我的問題,而不是使用包包裝器。不像我希望的那樣干凈整潔,但仍然是一個不錯的解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/506659.html
