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

Express+TypeScript+TypeORM启动报import语法错误解决方案问询

解决方案

步骤1:修改package.json启动脚本,新增环境变量标识

给不同运行环境添加NODE_ENV标识,方便配置文件动态判断运行场景:

{
  "scripts": {
    // 生产环境标记为production
    "start": "NODE_ENV=production tsc && node --unhandled-rejections=strict ./dist/app.js",
    // 开发环境标记为development
    "serve": "NODE_ENV=development nodemon app.ts",
    "debug": "NODE_ENV=development export DEBUG=* && npm run serve"
  }
}

若在Windows系统下开发,需先安装cross-env包实现跨平台环境变量注入,将上述脚本中的NODE_ENV=xxx替换为cross-env NODE_ENV=xxx即可。

步骤2:修改ormconfig.ts的entities配置,实现路径动态适配

根据环境变量自动切换实体文件加载路径,开发环境加载源码目录的.ts实体,生产环境加载dist目录的转译后.js实体:

module.exports = {
  type: 'mssql',
  host: process.env.DB_SERVER,
  username: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_DATABASE,
  port: Number(process.env.DB_PORT),
  // 核心修改:动态匹配实体路径
  entities: process.env.NODE_ENV === 'production' ? ['dist/entities/*.js'] : ['entities/*.ts'],
  logging: true,
  synchronize: false,
  options: { trustServerCertificate: true },
};

可选配置:补充nodemon配置保证开发环境执行逻辑正确

若你没有单独的nodemon配置文件,可在项目根目录新增nodemon.json,明确指定ts-node作为执行器,避免异常:

{
  "watch": ["**/*.ts"],
  "ext": "ts",
  "exec": "ts-node ./app.ts"
}

验证

  • 开发时执行npm run serve或npm run debug,会自动加载源码目录下的.ts实体文件,保留原有调试能力
  • 生产部署执行npm start,会自动加载dist目录下的转译后.js实体文件,不会出现import语法报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:15:06