首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >babel-plugin-语法-dynamic-import不能转换

babel-plugin-语法-dynamic-import不能转换
EN

Stack Overflow用户
提问于 2018-08-14 21:11:12
回答 2查看 3.6K关注 0票数 1

我认为我正确地配置了babel-plugin-syntax-dynamic-import,但它仍然不能转换我的动态导入。

节点: v8.11.3

package.json:

代码语言:javascript
运行
复制
  ...
  "devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-loader": "^7.1.5",
    "babel-plugin-syntax-dynamic-import": "^6.18.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-3": "^6.24.1",
    ...
    "webpack": "^4.16.5",
    "webpack-bundle-analyzer": "^2.13.1",
    "webpack-cli": "^3.1.0",
    "webpack-dev-server": "^3.1.5"
  },
  "scripts": {
    "dev": "webpack-dev-server --config webpack.config.js --open --hot --progress",
  ...
  },

  "dependencies": {
    "babel-core": "^6.26.3",
    "babel-polyfill": "^6.26.0",
    ...
    "react-loadable": "^5.5.0",
    "whatwg-fetch": "^2.0.4"
  }

webpack.config.js:

代码语言:javascript
运行
复制
...
{
  test: [/\.js$/, /\.jsx?$/],
  exclude: /node_modules/,
  use: {
    loader: 'babel-loader',
  },
},
...

.babelrc

代码语言:javascript
运行
复制
{
  "presets": ["env", "react", "stage-3"],
  "plugins": ["syntax-dynamic-import"]
}

AsyncComp.jsx:

代码语言:javascript
运行
复制
import React from 'react';
import Loadable from 'react-loadable';

const Loading = () => (<div>Loading...</div>);

const LoadableComponent = Loadable({
  loader: () => import('./CompRaw'),
  loading: Loading,
})

export default class AsyncComp extends React.Component {
  render() {
    return <LoadableComponent />;
  }
}

执行yarn dev会导致:

代码语言:javascript
运行
复制
/home/somepath/src/components/AsycnComp.jsx
  7:17  error  Parsing error: Unexpected token import

为什么动态import()没有被转译?我怎么才能修复它?

EN

回答 2

Stack Overflow用户

发布于 2018-08-15 00:06:44

啊,好吧!我想你也需要react-loadable/babel。请参阅此处的讨论:https://github.com/jamiebuilds/react-loadable/pull/35#issuecomment-337156641

票数 3
EN

Stack Overflow用户

发布于 2018-08-15 13:32:04

配置很好,错误源于使用eslint-loader,但没有安装支持动态导入的babel-eslint插件。

这就解决了问题。

代码语言:javascript
运行
复制
yarn add babel-eslint -D

.eslintrc

代码语言:javascript
运行
复制
{
  ...
  "parser": "babel-eslint"
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51842322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档