我正在尝试开发一个带有es6风格的express。在我的IDE (即win10 )上测试时,一切都很好。然后我部署到EBS进行生产环境测试,它给出了ERR_MODULE_NOT_FOUND错误。
npm库给出的所有错误,如cors、bcrypt、随机字符串等,但并不是所有的库都有问题。
当我在EBS上运行一个es6程序时,会不会有什么不同,因为EBS正在使用linux作为操作系统。
我该怎么解决呢?
以下是完整的错误消息:
9月6日10:14:49 ip-172-31-26-145 web:>节点www.js
9月6日10:14:49 ip-172-31-26-145网页:ip/process/esm_loader.js:74
9月6日10:14:49 ip-172-31-26-145网页: internalBinding('errors').triggerUncaughtException(
9月6日10:14:49 ip-172-31-26-145网页:^
9月6日10:14:49 ip-172-31-26-145 web: ERR_MODULE_NOT_FOUND:无法找到从/var/app/current/www.js导入的包“cors”
9月6日10:14:49 ip-172-31-26-145网页: at new NodeError (内部/errors.js:322:7)
9月6日10:14:49 ip-172-31-26-145网页: at packageResolve (内部/模块/esm/rupve.js:732:9)
9月6日10:14:49 ip-172-31-26-145网页: at moduleResolve (内部/模块/esm/rupve.js:773:18)
9月6日10:14:49 ip-172-31-26-145网页: at Loader.defaultResolve as _resolve
9月6日10:14:49 ip-172-31-26-145网页: at Loader.resolve (内部/模块/esm/loader.js:89:40)
9月6日10:14:49 ip-172-31-26-145网页: at Loader.getModuleJob (内部/模块/esm/loader.js:242:28)
9月6日10:14:49 ip-172-31-26-145网页: at ModuleWrap.(内部/模块/无害环境管理/模块_JOB.js:76:40)
9月6日10:14:49 ip-172-31-26-145网页: at link (内部/模块/esm/模块_JOB.js:75:36)
9月6日10:14:49 ip-172-31-26-145 web:代码:'ERR_MODULE_NOT_FOUND‘
9月6日10:14:49 ip-172-31-26-145 web:}
9月6日10:14:49 ip-172-31-26-145网页: npm错误!代码ELIFECYCLE
9月6日10:14:49 ip-172-31-26-145网页: npm错误!错误号1
9月6日10:14:49 ip-172-31-26-145网页: npm错误!时间表-api@0.0.0开始:node www.js
9月6日10:14:49 ip-172-31-26-145网页: npm错误!退出状态1
9月6日10:14:49 ip-172-31-26-145网页: npm错误!
9月6日10:14:49 ip-172-31-26-145网页: npm错误!在时间表-api@0.0.0启动脚本处失败。
9月6日10:14:49 ip-172-31-26-145网页: npm错误!这可能不是npm的问题。上面可能还有额外的日志输出。
9月6日10:14:49 ip-172-31-26-145网页: npm错误!可以在以下位置找到此运行的完整日志:
9月6日10:14:49 ip-172-31-26-145 web: npm ERR!/home/webapp/.npm/_logs/2022-09-06T10_14_49_923Z-debug.log
我就是这样导入库的:
import express from "express";
import path from "path";
import cookieParser from "cookie-parser";
import logger from "morgan";
import { fileURLToPath } from "url";
import passport from "passport";
import passportConfig from "./modules/passport.js";
import Debug from "debug";
import Cors from "cors";以下是我的完整package.json:
{
"name": "test-api",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js"
},
"dependencies": {
"bcrypt": "^5.0.1",
"big.js": "^6.2.1",
"cookie-parser": "~1.4.4",
"cors": "^2.8.5",
"debug": "^2.6.9",
"dotenv": "^16.0.1",
"express": "^4.17.1",
"https": "^1.0.0",
"jsonwebtoken": "^8.5.1",
"knex": "^2.0.0",
"lodash": "^4.17.21",
"module-alias": "^2.2.2",
"moment": "^2.29.3",
"moment-timezone": "^0.5.34",
"morgan": "~1.9.1",
"nodemon": "^2.0.16",
"passport": "^0.6.0",
"passport-jwt": "^4.0.0",
"passport-local": "^1.0.0",
"pdfmake": "^0.2.5",
"randomstring": "^1.2.2",
"tedious": "^14.5.0",
"uuid": "^8.3.2"
}
}发布于 2022-09-08 09:03:12
我会尝试在上传到EB的构建中将npm安装添加到.ebextension文件夹中。
PHP应用程序的一个示例可以在这里找到:https://github.com/rennokki/laravel-aws-eb/blob/36df929fbd223a7feca0a6bdfd5c27f1a0aca8d6/.ebextensions/01_deploy.config#L26
您可以先上传一个完全安装的版本来检查这是否是问题所在。
https://stackoverflow.com/questions/73620474
复制相似问题