嗨,我需要一些關于我的不和諧機器人的幫助。我搜索了錯誤并嘗試修復它,但它不起作用。這可能是我的編碼錯誤。請幫忙,謝謝!GitHub 存盤庫鏈接: https ://github.com/Verggz/Electrolite
編輯:不斷發生的錯誤警告:要加載 ES 模塊,請在 package.json 中設定“type”:“module”或使用 .mjs 擴展名。
2022-01-23T15:14:15.475287 00:00 app[worker.1]: (Use `node --trace-warnings ...` to show where the warning was created)
2022-01-23T15:14:15.476783 00:00 app[worker.1]: /app/main.ts:1
2022-01-23T15:14:15.476784 00:00 app[worker.1]: import express from 'express';
2022-01-23T15:14:15.476785 00:00 app[worker.1]: ^^^^^^
2022-01-23T15:14:15.476785 00:00 app[worker.1]:
2022-01-23T15:14:15.476785 00:00 app[worker.1]: SyntaxError: Cannot use import statement outside a module
2022-01-23T15:14:15.476786 00:00 app[worker.1]: at wrapSafe (internal/modules/cjs/loader.js:1001:16)
2022-01-23T15:14:15.476786 00:00 app[worker.1]: at Module._compile (internal/modules/cjs/loader.js:1049:27)
2022-01-23T15:14:15.476786 00:00 app[worker.1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
2022-01-23T15:14:15.476787 00:00 app[worker.1]: at Module.load (internal/modules/cjs/loader.js:950:32)
2022-01-23T15:14:15.476787 00:00 app[worker.1]: at Function.Module._load (internal/modules/cjs/loader.js:790:12)
2022-01-23T15:14:15.476787 00:00 app[worker.1]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
2022-01-23T15:14:15.476788 00:00 app[worker.1]: at internal/main/run_main_module.js:17:47
包.json:
{
"name": "electrolite",
"version": "0.0.1",
"description": "literally just project scyll v2 but better",
"main": "./build/main.js",
"scripts": {
"start": "node --max-old-space-size=512 ./build/main.js && export NODE_ENV=production",
"dev": "tsc && node ./build/main.js",
"bot": "node ./build/bot/main.bot.js",
"botdev": "tsc && node ./build/bot/main.bot.js"
},
"keywords": [
"minecraft"
],
"author": "PenguinDetox",
"license": "ISC",
"dependencies": {
"@discordjs/builders": "^0.11.0",
"@discordjs/rest": "^0.2.0-canary.0",
"axios": "^0.24.0",
"discord-api-types": "^0.26.1",
"discord.js": "^13.5.0",
"express": "^4.17.2",
"fs-extra": "^10.0.0",
"hypixel-api-reborn": "^9.0.3",
"prismarine-nbt": "^2.0.0",
"set-interval-async": "^2.0.3"
},
"devDependencies": {
"@types/express": "^4.17.13",
"@types/fs-extra": "^9.0.13",
"@types/node": "^17.0.4",
"@types/set-interval-async": "^1.0.0"
}
}
檔案:
worker: node main.ts
uj5u.com熱心網友回復:
我不完全確定您要在這里做什么,但目前的主要問題是您要求 Heroku 運行您的TypeScript代碼,而不是編譯后的 JavaScript。這是通過您的Procfile:
worker: node main.ts
你有一個完全不同的命令package.json:
"start": "node --max-old-space-size=512 ./build/main.js && export NODE_ENV=production",
這可能更接近您想要的,但我們不能就這樣使用它。
該&& export NODE_ENV部分不太可能做任何有用的事情:它會等到您的代碼停止運行,然后匯出環境變數,然后退出。讓我們洗掉它:
"start": "node --max-old-space-size=512 ./build/main.js",
現在的問題是build/main.js不存在。您需要告訴 Heroku 在部署期間構建它。根據您的dev腳本,我相信只涉及運行tsc.
讓我們添加一個構建腳本來做到這一點:
"build": "tsc",
"start": "node --max-old-space-size=512 ./build/main.js",
typescript(我在您的中沒有看到devDependencies,這意味著tsc可能無法運行。確保在您的 中包含所有依賴項package.json。)
好的,所以您的build腳本現在將告訴 Heroku 在部署期間構建您的應用程式,并且您build/main.js應該存在。您的start腳本已更新。
讓我們來處理你的Procfile. 更新它以匹配新start腳本:
worker: node --max-old-space-size=512 ./build/main.js
提交所有這些更改并重新部署。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/421190.html
標籤:
