意外的令牌导入(ReactJS和Babel)

时间:2018-09-26 19:24:06

标签: javascript reactjs babeljs babel babel-loader

当我尝试运行我的应用程序时,出现以下错误: (function (exports, require, module, __filename, __dirname) { import { Row } from '../grid' SyntaxError: Unexpected token import

我尝试了几个建议我安装babel-plugin-transform-es2015-modules-commonjs babel-plugin-transform-class-properties babel-preset-es2015的stackoverflow答案

然后将我的babel-rc文件配置为:

{
  "presets": ["env", "es2015", "react", "stage-2"],
  "plugins": [
    ["transform-es2015-modules-commonjs"],
    ["transform-class-properties"],
    [
      "import",
      { "libraryName": "antd", "libraryDirectory": "es", "style": "css" }
    ]
  ]
}

但是这些都不起作用。

这是我的webpack.config.js的代码段,应配置babel-loader来转换.jsx|.js

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

2 个答案:

答案 0 :(得分:2)

您的.babelrc应该看起来像

{
  "presets": [
    "@babel/env",
    "@babel/react"
  ]
}

这意味着您应该拥有

"@babel/core": "^7.0.0"
"@babel/preset-env": "^7.0.0"
"@babel/preset-react": "^7.0.0"

作为开发依赖项。

所有这些对于启用babel中的标准功能(包括导入和JSX支持)都是必需的。除非您还使用babel pollyfills,否则请删除所有不是这三个的babel软件包。

答案 1 :(得分:0)

您的.babelrc应该看起来像

select restaurant,
       avg(case when score = 4 then 1.0 else 0 end) over (partition by restaurant) as avg_4_restaurant,
       avg(case when score = 4 then 1.0 else 0 end) over () as avg_4_overall
from TRIPADVISOR ;

如果尚未将babel添加到开发依赖项,请运行

{ "presets": [ "@babel/preset-env", "@babel/preset-react" ] }

OR

npm i @babel/core babel-loader @babel/preset-env @babel/preset-react --save-dev

这将确保您具有所有必需依赖项的最新版本。