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

JavaScript import语句报错,已尝试Babel仍未解决,请求协助

解决Node.js中import语句报Unexpected token import的问题

嘿,我之前也踩过这个坑!这个报错本质是Node.js默认不支持ES模块的import/export语法,哪怕装了Babel,要是配置或运行方式不对,照样会出问题。我给你几个实用的排查和解决方向:

1. 检查Babel配置是否完整且正确

首先得确保依赖装对、配置文件到位:

  • 先安装必要的开发依赖:
    npm install --save-dev @babel/core @babel/preset-env babel-jest
    
    (如果是直接运行文件而非测试场景,把babel-jest换成@babel/node)
  • 在项目根目录创建babel.config.json(或者.babelrc),配置内容如下:
    {
      "presets": [
        ["@babel/preset-env", {
          "targets": {
            "node": "current" // 针对你当前使用的Node版本做精准转译
          }
        }]
      ]
    }
    
  • 如果你用Jest做测试,还要在jest.config.js里添加转译规则:
    module.exports = {
      transform: {
        "^.+\\.js$": "babel-jest" // 让Jest自动用Babel转译所有JS文件
      }
    }
    

2. 用正确的命令运行代码

别直接用node cart.test.js执行!得让Babel先完成转译:

  • 测试场景:确保package.json里的test脚本配置正确:
    "scripts": {
      "test": "jest"
    }
    
    然后运行npm test,Jest会自动调用Babel处理你的测试文件。
  • 直接运行单个文件场景:用npx babel-node cart.test.js来执行,让Babel实时转译后再交给Node运行。

3. 临时应急方案:改用CommonJS语法

要是暂时不想折腾Babel配置,也可以把ES模块语法换成Node原生支持的CommonJS:

const Product = require('./cart')

这样直接用node命令就能正常运行了。

额外注意事项

  • 如果你在package.json里设置了"type": "module",Node会默认把所有.js文件当作ES模块,但这时候要确保Babel配置适配ES模块,且不能混用require和import语法。
  • 检查你的cart.js文件导出方式:如果它用的是export default Product,要确保它也被Babel转译,或者改成CommonJS的module.exports = Product。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:02:08