vue 2.0 沒法編譯ES6語法

# vue2.0 webpack 沒法編譯 ES6 語法javascript

以前在使用 vue 1.x 時用 vue-loader@8.0.0 版本能夠正常打包vue的代碼,包括ES6語法也能正常轉爲ES5語法,可是當使用 vue@2.0 + vue-loader@10.0.2 之後發現,經過 webpack 打包後的代碼裏面的ES6語法沒有轉義,google一會後發現,須要在webpack.config.js裏單獨配置babel的編譯規則。一個典型的配置以下:css

var webpack = require('webpack');
var vue = require('vue-loader')
var ExtractTextPlugin = require("extract-text-webpack-plugin");

module.exports = {
    //插件項
    plugins: [
        new ExtractTextPlugin("[name].css")
    ],
    //頁面入口文件配置
    entry: {
        index : './src/index.js'
    },
    //入口文件輸出配置
    output: {
        path: './dist/',
        filename: '[name].js'
    },
    module: {
        preLoaders: [
          {
            test: /\.vue$/,
            loader: 'eslint',
            include: '../',
            exclude: /node_modules/
          },
          {
            test: /\.js$/,
            loader: 'eslint',
            include: '../',
            exclude: /node_modules/
          }
        ],
        //加載器配置
        loaders: [,
            { 
                test: /\.vue$/, 
                loader: 'vue'
            },
            { 
                test: /\.js$/, 
                loader: "babel",
                query: {presets: ['es2015']},
                exclude: /node_modules/ 
            },
            { 
                test: /\.css$/, 
                loader: ExtractTextPlugin.extract("css") 
            },
            { 
                test: /\.less$/, 
                loader: ExtractTextPlugin.extract("css!less") 
            }
        ]
    },
    vue : {
      loaders: {
        css: ExtractTextPlugin.extract("css"),
        less: ExtractTextPlugin.extract("css!less")
      },
      autoprefixer: { browsers: ["ios_saf >= 7", "android >= 4"] }
    },
    babel: {
      presets: ['es2015'],
      plugins: ['transform-runtime']
    }
};

看到最後一個配置了嗎?須要單獨爲babel配置編譯規則,vue-loader才能編譯ES6語法。vue

此方法在 vue@2.1.8 , vue-loader@10.0.2 是可行的。java

 

謝謝node

相關文章
相關標籤/搜索