2017-09-29 9 views
0

Lors de la construction d'un projet Vue y compris les fonctions de direction, de UglifJsPlugin webpack donne cette erreur:Vue webpack enlaidir - Fonctions fléchées

Unexpected token: operator (>) 

exemple:

app.js

import Vue from 'vue'; 
import HelloWorldComponent from "./HelloWorld.vue"; 

new Vue({ 
    el: '#app' 
    ,render: r => r(HelloWorldComponent) 
}); 

HelloWorld.vue

<template> 
    <div>{{message}}</div> 
</template> 

<script> 
const data = { message: "Hello World" } 
export default { 
    data() { return data } 
} 
</script> 

webpack.config.js

const webpack = require('webpack'); 
const path = require("path"); 
const HtmlPlugin = require("html-webpack-plugin"); 
const UglifyJsPlugin = require("uglifyjs-webpack-plugin"); 

const output = { 
    path: path.resolve(__dirname, 'build'), 
    filename: 'app.js' 
}; 
const vueLoaderRule = { 
    test: /\.vue$/, 
    loader: 'vue-loader' 
}; 
const uglifyJsPlugin = new UglifyJsPlugin({ 
    include: /\.js$/, 
    minimize: true 
}); 

module.exports = { 
    entry: './app.js' 
    ,output: output 
    ,module: {rules: [ vueLoaderRule ]} 
    ,plugins: [ uglifyJsPlugin ] 
} 

Note: ma question a été marquée comme double de celle-ci: Arrow Function syntax not working with webpack?
1) il n'a rien à voir avec Vue
2) il est sur l'utilisation des fonctions de direction en tant que membre de la classe , wheres ma question ne

+1

DUPLICAT possible e de [Flèche Syntaxe de la fonction ne fonctionne pas avec webpack?] (https://stackoverflow.com/questions/42063854/arrow-function-syntax-not-working-with-webpack) –

Répondre

0

en ce moment, UglifyJsPlugin ne supporte pas fonction ES6 (fonction de flèche) vous devez donc utiliser babel premier à compiler votre code ES6 à ES5 puis utilisez UglifyJsPlugin dans ce

+0

Comment puis-je utiliser babel avec vue chargeur? –

+0

D'abord, vous devez installer 'babel-loader' et créer sa config. Ensuite, dans la configuration de votre webpack, créez une nouvelle règle pour 'js' pour utiliser' babel' (vous n'avez pas besoin d'éditer la configuration de view-loader car elle détectera automatiquement la présence 'babel-loader' et l'utilisera – imcvampire