# 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