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

Node v6.7.0下React项目ESLint报Parsing error: Unexpected token *求助

问题根源与解决方案

这个问题的核心是Node v6.7.0对ES6模块语法的原生支持非常有限,而你的Lint工具(大概率是ESLint)在旧Node环境下没有正确配置Babel解析器,导致无法识别import * as name from './path'这种语法。Node v8.0.0对ES模块的支持有了显著提升,所以不会触发这个报错。下面是具体的解决步骤:

1. 修复ESLint配置

打开你的ESLint配置文件(比如.eslintrc.js或.eslintrc.json),做以下调整:

  • 指定解析器为babel-eslint,它能兼容Babel转译的所有ES语法,包括旧Node不支持的模块语法:
    module.exports = {
      parser: 'babel-eslint',
      // 其他配置...
    }
    
  • 确保配置了正确的ECMAScript版本和模块类型:
    parserOptions: {
      ecmaVersion: 6, // 或更高版本,比如2015
      sourceType: 'module', // 声明使用ES模块
      ecmaFeatures: {
        jsx: true // 如果是React项目,保留这个配置
      }
    }
    
  • 可以明确指定Node环境版本,让ESLint适配旧Node的语法规则:
    env: {
      node: '6.7.0',
      browser: true,
      es6: true
    }
    

2. 确保依赖安装完整

  • 安装babel-eslint作为开发依赖:
    npm install babel-eslint --save-dev
    
  • 检查你的Babel配置(比如.babelrc或babel.config.js),确保使用了@babel/preset-env并指定了目标Node版本:
    {
      "presets": [
        ["@babel/preset-env", {
          "targets": {
            "node": "6.7.0"
          }
        }],
        "@babel/preset-react"
      ]
    }
    
    这个配置会把ES6+语法转译为Node v6.7.0能识别的代码,包括模块语法。

3. 验证Webpack配置

确保Webpack使用babel-loader处理你的React/JS文件,在module.rules里添加:

module: {
  rules: [
    {
      test: /\.(js|jsx)$/,
      exclude: /node_modules/,
      use: 'babel-loader'
    }
  ]
}

这样Webpack会通过Babel转译所有JS/JSX文件,避免旧Node环境下的语法错误。

4. 清理缓存与重新安装

有时候旧的缓存会导致奇怪的问题,你可以:

  • 删除node_modules文件夹和package-lock.json(或yarn.lock)
  • 重新执行npm install
  • 清理Webpack缓存(如果使用了缓存插件,或者直接删除dist文件夹)

完成这些步骤后,应该就能在Node v6.7.0环境下正常运行Lint和测试了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:42:24