使用动态导入而不是System.import时出现意外的令牌

时间:2017-06-30 16:14:59

标签: javascript webpack babeljs webpack-3

重写所有对System.import webpack编译的动态import调用失败后:

Module build failed: SyntaxError: (...)/dashboard.js: Unexpected token (7:4)

   5 | 
   6 | export default Promise.all([
>  7 |     import('charts')
     |     ^

<小时/> 我的webpack.config.js

module: 
{
  loaders: [
    {
      test:    /\.js$/,
      exclude: /node_modules/,
      loader:  'babel-loader'
    },
   (...)
}

<小时/> .babelrc

{
  "presets": ["es2015"],
  "plugins": ["syntax-dynamic-import", "transform-runtime"]
}

<小时/> package.json

  "devDependencies": {
    "autoprefixer": "~6.5.3",
    "babel": "^6.5.2",
    "babel-cli": "~6.18.0",
    "babel-core": "^6.25.0",
    "babel-loader": "^7.1.1",
    "babel-plugin-syntax-dynamic-import": "^6.18.0",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-es2015": "^6.18.0",      
    "node-sass": "^4.5.3",
    "noty": "~2.4.0",
    "path": "~0.12.7",
    "promise-polyfill": "~6.0.2",
    "resolve-url-loader": "~1.6.0",
    "sass-loader": "~4.0.2",
    "style-loader": "~0.13.1",
    "stylelint": "~7.6.0",
    "tag-it": "~2.0.0",
    "url-loader": "~0.5.7",
    "webpack": "^3.0.0",
    "webpack-dev-server": "~2.2.1",
    "webpack-uglify-js-plugin": "~1.1.9",
    "whatwg-fetch": "~2.0.2"
  },

3 个答案:

答案 0 :(得分:0)

原来我的.babelrc被忽略了,因为这个文件(和webpack)在我项目的根目录之外。我通过在webpack.config.jsbabel-loader添加配置文件的路径来修复它:

{
    test:    /\.js$/,
    exclude: /node_modules/,
    use:     'babel-loader?extends='+path.resolve('./.babelrc')
}

答案 1 :(得分:0)

安装此babel插件https://github.com/airbnb/babel-plugin-dynamic-import-node

in .babelrc
{
  "plugins": ["dynamic-import-node"]
}`

答案 2 :(得分:-1)

您必须像dynamic-import-webpack那样导入变压器。这些插件已经包含所需的语法作为依赖项,因此您的配置可以简单:

{
  "presets": ["es2015"],
  "plugins": ["dynamic-import-webpack", "transform-runtime"]
}