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

运行migrate-mongo迁移报SyntaxError: Unexpected token ':'错误如何解决?

问题原因

报错本质是 Node.js 原生不支持直接导入 TypeScript 文件,你的migrate-mongo-config.js是普通JS运行时文件,用require导入了带TS类型语法(比如: string类型标注)的environment.ts,Node 解析非JS语法时识别不了冒号就抛出了错误。

解决方案

方案1:用ts-node运行迁移命令(改造成本最低)

不用修改现有代码,仅调整运行方式即可:

  1. 安装ts-node开发依赖:
    npm install ts-node --save-dev
  2. 调整迁移执行命令,比如原本的migrate-mongo up改成:
    npx ts-node ./node_modules/migrate-mongo/bin/migrate-mongo.js up
    如果是写在package.json的scripts中,配置如下:
{
  "scripts": {
    "migrate:up": "ts-node ./node_modules/migrate-mongo/bin/migrate-mongo.js up",
    "migrate:down": "ts-node ./node_modules/migrate-mongo/bin/migrate-mongo.js down"
  }
}

方案2:单独编写JS版本的环境配置

不想额外安装依赖的话,可以单独抽一份适配迁移脚本的JS环境配置:

  1. 项目根目录新建env-for-migrate.js:
module.exports = {
  databaseName: process.env.MODE === 'dev' ? process.env.dataBaseDev : process.env.dataBaseProd
}
  1. 修改migrate-mongo-config.js的导入逻辑,替换成导入上述JS文件:
const env = require("./env-for-migrate.js")

const config = {
  mongodb: {
    url: 'mongodbUrl',
    databaseName: env.databaseName,
    options: {
      useNewUrlParser: true, 
      useUnifiedTopology: true, 
    }
  },
  migrationsDir: "migrations",
  migrationFileExtension: ".js"
};
module.exports = config;

方案3:把迁移配置也改为TS格式

如果项目全栈使用TS,可以直接把配置文件切换为TS语法:

  1. 把migrate-mongo-config.js重命名为migrate-mongo-config.ts,调整代码适配TS规则:
import { Environments } from "./src/environment/environment.ts";

const config = {
  mongodb: {
    url: 'mongodbUrl',
    databaseName: Environments.databaseName,
    options: {
      useNewUrlParser: true,
      useUnifiedTopology: true,
    }
  },
  migrationsDir: "migrations",
  migrationFileExtension: ".js"
};

export default config;
  1. 运行命令时指定TS配置文件:
    npx ts-node ./node_modules/migrate-mongo/bin/migrate-mongo.js up --config migrate-mongo-config.ts

内容的提问来源于stack exchange,提问作者farzanmanafi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:06:05