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

使用ts-node-dev运行项目时import附近报SyntaxError: Unexpected string错误

问题原因

报错本质是你引入的@polkadot/* 7.x及以上版本仅提供ESM格式产物,Node.js的CommonJS模块加载器无法原生识别ESM的import语法,而你的配置默认跳过了对node_modules目录下所有文件的转译,导致未转译的ESM语法直接被执行触发语法错误。

修复步骤

第一步 调整tsconfig.json配置

在compilerOptions中新增两项配置:

{
  "compilerOptions": {
    // 保留原有配置不变,新增以下两行
    "allowJs": true,
    "skipLibCheck": true
  }
}
  • allowJs:允许TypeScript编译JS文件,才能转译@polkadot包下的ESM格式JS代码
  • skipLibCheck:跳过第三方库的类型检查,避免非业务代码的类型报错阻断运行

第二步 修改package.json的dev启动脚本

给ts-node-dev添加忽略规则,不要跳过@polkadot相关包的转译:

{
  "scripts": {
    // 替换原有dev脚本
    "dev": "ts-node-dev --respawn --pretty --transpile-only --ignore '/node_modules/(?!@polkadot/)' src/index.ts"
  }
}

--ignore '/node_modules/(?!@polkadot/)'的作用是:仅忽略node_modules下除了@polkadot开头之外的所有包,保证@polkadot相关代码会被正常转译。

可选补充方案

如果上述修改后仍有报错,可以升级ts-node和ts-node-dev到最新稳定版,也可以替换为支持ESM和CommonJS混合加载的TypeScript运行工具。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:15:05