You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Knex v2.4.0执行数据库迁移脚本时出现env: node\r: No such file or directory错误

Knex v2.4.0执行数据库迁移脚本时出现env: node\r: No such file or directory错误

遇到这个问题我太熟悉了!这个错误本质上是换行符不兼容导致的——Unix/Linux/macOS系统会把Windows风格的\r\n换行符里的\r当成命令的一部分,所以才会找不到node\r这个不存在的命令。结合你说低版本Knex正常、新版本出问题的情况,大概率是新版本Knex的脚本文件在打包或发布时带入了Windows换行符,或者你的项目环境在安装依赖时出现了换行符污染。

给你几个实用的解决办法:

  • 转换Knex脚本的换行符
    找到项目里node_modules/knex/bin/knex.js这个文件,把它的换行符从Windows风格的CRLF改成Unix风格的LF。你可以用VS Code打开文件,点击右下角的换行符标识切换,或者用dos2unix命令直接处理:

    dos2unix node_modules/knex/bin/knex.js
    

    改完后再尝试执行npx knex migrate:latest应该就能正常运行了。

  • 清理并重新安装依赖
    有时候依赖安装过程中会因为环境差异引入奇怪的格式问题,彻底清理后重装能解决不少这类问题:

    1. 删除node_modules文件夹和package-lock.json(或yarn.lock)文件
    2. 重新执行npm install(或yarn install)
    3. 再次尝试迁移命令
  • 检查npm的脚本配置
    如果是macOS或Linux系统,确保npm使用的shell是兼容的,你可以尝试设置:

    npm config set script-shell /bin/bash
    

    之后再执行迁移命令试试。

备注:内容来源于stack exchange,提问作者Vaishnavi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 14:37:27