运行时出现错误
yarn run migration:run
在package.json
中,该脚本为
"migration:run": "dotenv -e ../.env DB_PORT=4420 npx run typeorm migration:run",
下面是错误:
❯ yarn run migration:run
yarn run v1.22.19
warning ../../package.json: No license field
$ dotenv -e ../.env DB_PORT=4420 npx run typeorm migration:run
node:events:368
throw er; // Unhandled 'error' event
^
Error: spawn DB_PORT=4420 ENOENT
at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
at onErrorNT (node:internal/child_process:477:16)
at processTicksAndRejections (node:internal/process/task_queues:83:21)
Emitted 'error' event on ChildProcess instance at:
at Process.ChildProcess._handle.onexit (node:internal/child_process:288:12)
at onErrorNT (node:internal/child_process:477:16)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
errno: -2,
code: 'ENOENT',
syscall: 'spawn DB_PORT=4420',
path: 'DB_PORT=4420',
spawnargs: [ 'npx', 'run', 'typeorm', 'migration:run' ]
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
我有另一个Docker容器使用端口5432用于Postgres,这就是为什么我将其设置为4420并将其作为命令的一部分传入。我在搜索中发现了一些类似的错误,但没有一个是运行此命令的结果。我尝试了我能想到的一切,包括删除yarn.lock
和/node_modules
并重新运行yarn
。但还是没能解决问题。有人能给我一些建议,告诉我该如何度过难关吗?先谢谢你。
1条答案
按热度按时间sgtfey8w1#
如果其他人遇到这种情况,问题在于我在
package.json
中定义命令的方式。到
如果你使用
dotenv
,你必须先定义你想让cli命令使用的任何env变量,* 然后 * 调用dotenv
。另外,我必须把npx
改为npm
,现在它工作得很好。