handsontable / vue-handsontable-official

Vue Data Grid with Spreadsheet Look & Feel. Official Vue wrapper for Handsontable.
https://handsontable.com/docs/vue
MIT License
744 stars 128 forks source link

Uncaught SyntaxError: Unexpected token import #4

Closed SidFeng closed 7 years ago

SidFeng commented 7 years ago

Anybody can help me? image this is my webpack.config.

var path = require('path')
var webpack = require('webpack')
var HtmlWebpackPlugin = require('html-webpack-plugin')
var ExtractTextPlugin = require('extract-text-webpack-plugin')

module.exports = {
  devtool: 'eval-source-map',
  devServer: {
    historyApiFallback: true,
    compress: true,
    disableHostCheck: true,
    noInfo: true
  },
  debug: true,
  entry: [
    './src/index'
  ],
  externals: {
   "BMap": "BMap" 
  }, 
  output: {
    path: process.cwd(),
    filename: 'bundle.js',
    publicPath: '/'
  },
  plugins: [
    new webpack.DefinePlugin({
      'process.env':{
        'NODE_ENV': JSON.stringify(process.env.NODE_ENV)
      }
    }),
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin(),
    new HtmlWebpackPlugin({
      favicon:path.join(__dirname,'src/favicon.ico'),
      template: path.join(__dirname,'src/index.html'),
      inject: true
    }),
    new ExtractTextPlugin('[hash:8].style.css', { allChunks: true })
  ],
  module: {
    loaders: [
      {
        test: require.resolve('hot-formula-parser/dist/formula-parser.js'),
        loader: 'expose-loader?formulaParser'
      },
      {
        test: require.resolve('numbro'),
        loader: 'expose-loader?numbro'
      },
      {
        test: require.resolve('moment'),
        loader: 'expose-loader?moment'
      },
      {
        test: require.resolve('pikaday'),
        loader: 'expose-loader?Pikaday'
      },
      {
        test: require.resolve('zeroclipboard'),
        loader: 'expose-loader?ZeroClipboard'
      },
      {
        test: /vue-preview.src.*?js$/,
        loader: 'babel'
      },
      { test: /\.vue$/,loader: 'vue'}, 
      { test: /\.js$/, loader: 'babel', exclude: /node_modules|vue\/dist|vue-hot-reload-api|vue-router\/|vue-loader/}, 
      { test: /\.css$/, loader: 'style-loader!css-loader?{ "safe": true , "autoprefixer": { "add": true, "browsers": ["IE >= 8"] }}'},
      { test: /\.less$/, loader: "style!css!less" },
      {
        test: /\.(png|jpe?g|gif|svg)(\?\S*)?$/,
        loader: 'file-loader',
        query: {
          name: '[name].[ext]?[hash]'
        }
      },
      {
        test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/,
        loader: 'file-loader'
      }
    ]
  },
  resolve: {
    root: path.resolve(__dirname, 'node_modules'),
    extensions: ['','.js','.vue','.less'],
    alias: {
      'vue': 'vue/dist/vue.js',
      'src': path.resolve(__dirname, './src'),
      'assets': path.resolve(__dirname, './src/assets'),
      'components': path.resolve(__dirname, './src/components'),
      'pages': path.resolve(__dirname, './src/pages')
    }
  }
}
SidFeng commented 7 years ago

I fixed it by myself.

{
          test: /vue-handsontable-official.src.*?js$/,
          loader: 'babel-loader',
          query: {
              presets: ['es2015']
          }
      },