Node.js Heroku部署过程中prisma出现ERR_INVALID_ARG_类型错误
首先,谢谢你的帮助 我一直在尝试在node.js中部署我的后端应用程序,但每次我这样做都会遇到同样的问题,我不知道这是什么?直到昨天,天气一直很好Node.js Heroku部署过程中prisma出现ERR_INVALID_ARG_类型错误,node.js,heroku,prisma,Node.js,Heroku,Prisma,首先,谢谢你的帮助 我一直在尝试在node.js中部署我的后端应用程序,但每次我这样做都会遇到同样的问题,我不知道这是什么?直到昨天,天气一直很好 -----> Building on the Heroku-20 stack -----> Using buildpack: heroku/nodejs -----> Node.js app detected -----> Creating runtime environment NPM_CONFIG_P
-----> Building on the Heroku-20 stack
-----> Using buildpack: heroku/nodejs
-----> Node.js app detected
-----> Creating runtime environment
NPM_CONFIG_PRODUCTION=true
NPM_CONFIG_LOGLEVEL=error
NODE_VERBOSE=false
NODE_MODULE_CACHE=false
NODE_ENV=production
NODE_MODULES_CACHE=true
-----> Installing binaries
engines.node (package.json): unspecified
engines.npm (package.json): unspecified (use default)
Resolving node version 14.x...
Downloading and installing node 14.16.0...
Using default npm version: 6.14.11
-----> Installing dependencies
Installing node modules
> @prisma/client@2.16.1 postinstall /tmp/build_9659a05e/node_modules/@prisma/client
> node scripts/postinstall.js
warning In order to use "@prisma/client", please install Prisma CLI. You can install it with "npm add -D prisma".
> avenidaz-node@1.0.0 postinstall /tmp/build_9659a05e
> npx prisma generate
Prisma schema loaded from prisma/schema.prisma
Error:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Object
at validateString (internal/validators.js:124:11)
at Object.join (path.js:1039:7)
at Object.generateClient (/tmp/build_9659a05e/node_modules/@prisma/client/generator-build/index.js:72910:56)
at async LineStream.<anonymous> (/tmp/build_9659a05e/node_modules/@prisma/client/generator-build/index.js:2802:26)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! avenidaz-node@1.0.0 postinstall: `npx prisma generate`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the avenidaz-node@1.0.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /tmp/npmcache.WWuef/_logs/2021-04-06T03_48_25_103Z-debug.log
-----> Build failed
We're sorry this build is failing! You can troubleshoot common issues here:
https://devcenter.heroku.com/articles/troubleshooting-node-deploys
Some possible problems:
- Node version not specified in package.json
https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version
Love,
Heroku
! Push rejected, failed to compile Node.js app.
! Push failed
我已经试着去掉prisma依赖项上的克拉,甚至从package.json中删除prisma并运行npm I
我还尝试通过运行repo:reset并重新部署来重置应用程序
我尝试回滚上一次提交,但仍然出现ran错误
我注意到,当我在heroku控制台中运行控制台检查package.json(cat package.json)时,package.json在我尝试从package.json中删除克拉或棱柱时根本没有更新,似乎heroku正在缓存依赖项。我建议在你的
package.json
中包含最新和相同版本的prisma
和@prisma/client
,然后进行部署,以便npx prisma generate
使用本地prisma
二进制文件。@Ryan我已经这样做了,但在运行heroku控制台并检查package.json时仍然存在相同的错误,尽管我部署了新的更改,但看起来还是一样,好像没有更改
{
"name": "my aoo",
"version": "1.0.0",
"description": "back end of avenida z",
"main": "src/app.js",
"scripts": {
"postinstall": "npx prisma generate",
"start": "node src/server.js",
"test": "mocha tests/**/*.js --exit"
},
"author": "owner",
"license": "ISC",
"dependencies": {
"@prisma/client": "^2.16.1",
"@sendgrid/mail": "^7.4.1",
"aws-sdk": "^2.768.0",
"bcryptjs": "^2.4.3",
"cors": "^2.8.5",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"express-oauth-server": "^2.0.0",
"heroku-ssl-redirect": "^0.1.1",
"jsonwebtoken": "^8.5.1",
"multer": "^1.4.2",
"papaparse": "^5.3.0",
"pg": "^8.3.2",
"pgtools": "^0.3.0",
"sequelize": "^6.3.4",
"uuid": "^8.3.1",
"winston": "^3.3.3"
},
"devDependencies": {
"@prisma/cli": "^2.15.0",
"mocha": "^8.3.0",
"prisma": "^2.16.1"
}
}