【问题标题】:How to fix import/export babel-eslint without configuration file?如何在没有配置文件的情况下修复导入/导出 babel-eslint?
【发布时间】:2019-06-14 01:49:07
【问题描述】:

当我点击 npm start 时,出现以下错误:

Parsing error: 'import' and 'export' may only appear at the top level

当我查看此错误时,他们说我需要更新 eslint 配置文件,并在解析器选项中设置 true 和 all。但是,我没有 eslint 配置文件,我的包 json 看起来像这样:

{
  "name": "client",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@material-ui/core": "^3.6.1",
    "@material-ui/icons": "^3.0.1",
    "material-icons-react": "^1.0.4",
    "react": "^16.6.3",
    "react-dom": "^16.6.3",
    "react-scripts": "2.1.1",
    "truffle-contract": "^4.0.0-beta.1",
    "web3": "^1.0.0-beta.36"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ]
}

更新: 整个错误:

./src/App.js
  Line 131:  Parsing error: 'import' and 'export' may only appear at the top level

  129 |     );
  130 | 
> 131 |   export default App;
      |   ^
  132 | 
  133 |       <div id="dashboard">
  134 |         <div className="menu">

链接到我的 App.js 代码:

my app.js github code link

更新错误2:

./src/Article.js
  Line 11:  Parsing error: Unexpected token, expected ","

   9 |       return (
  10 |         {/* sorting articles by score */}
> 11 |         articles.sort(function (a, b) {
     |         ^
  12 |           return a.score - b.score;
  13 |         });
  14 |

my Article.js github code

【问题讨论】:

  • 看起来您正试图在某个函数内部而不是在模块级别使用importexport。该错误是否为您提供更多信息,可能是解析错误的文件名和行号?
  • 是的,我已经更新了我的问题并发布了整个错误。
  • 是的,看起来您正试图从render 内部调用export default App,您应该将该行移到组件外部(到文件底部)。如果这没有帮助,如果您发布整个组件的代码会有所帮助。
  • 是的,我已经更新了我的问题并将 github 代码链接添加到 App.js 文件中,请查看它。谢谢。

标签: javascript reactjs npm babeljs package.json


【解决方案1】:

importexport 语句不能在函数或类定义中,它们必须在模块级别。

import something from './file'; // <-- module level, outside function

function App() {
  export default App; // <-- inside function, this will break everything
  return <div>Hello</div>
}

export default App // <-- module level, outside function

错误很明显:在 render 方法的中间有一个额外的 export 语句。

您似乎有一些重复的代码render。删除这些行:https://github.com/AdenSTL/stackoverflow-errors/blob/master/App.js#L131-L153

所以render 看起来像这样:

  render() {
    return (
      <AppBar position="static">
        <div id="dashboard">
          <div className="menu">
            <MenuItem onClick={this.handleClose}>
              <NavLink exact to="/CardStack">
                Home
              </NavLink>
            </MenuItem>
            <MenuItem onClick={this.handleClose}>
              <NavLink exact to="/Article" >
                Article
              </NavLink>
            </MenuItem>
          </div>
          <div className="content">
            <Route exact path="/CardStack" component={CardStack} />
            <Route exact path="/Article" component={Article} />
          </div>
        </div>
      </AppBar>
    );
  }

【讨论】:

  • 我仍然收到错误,我在问题错误 2 中更新了该错误,并带有指向该文件的 github 代码链接。请查看它。谢谢。
  • 该错误与您的原始问题无关,现在似乎已解决。您应该尝试自己解决(根据错误消息),然后如果您无法解决它,请发布一个新问题来解释您的尝试。
  • 谢谢。请在此处查看新问题:stackoverflow.com/questions/56591097/…
猜你喜欢
  • 1970-01-01
  • 2018-11-10
  • 2020-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 1970-01-01
  • 2022-06-27
相关资源
最近更新 更多