2017-09-15 10 views
0

Ich versuche, ein UglifyJS-Plugin zu meiner Webpack-Konfiguration hinzuzufügen. Der Einstiegspunkt ist einfach und sieht wie folgt aus:webpack - UgfyJS schlägt fehl

import Vue from 'vue'; 
import Comp from './components/comp.vue'; 
Vue.component('somecomponent', { 
    render: h => h(Comp) 
}); 

und wenn ich versuche, webpack zu laufen wirft er einen Fehler:

ERROR in source1.bundle.js from UglifyJs 
Unexpected token: operator (>) [./frontend/source1.js:7,0][source1.bundle.js:80,15] 

Was bin ich? das ist meine Konfig

const path = require('path'); 
const webpack = require('webpack'); 
const CleanWebpackPlugin = require('clean-webpack-plugin'); 

module.exports = { 
    entry: { 
     source1: './frontend/source1.js', 
     source2: './frontend/source2.js' 
    }, 
    output: { 
     filename: '[name].bundle.js', 
     path: path.resolve(__dirname, 'static/bundles') 
    }, 
    plugins: [ 
     new CleanWebpackPlugin(['static/bundles']), 
     new webpack.optimize.UglifyJsPlugin({ 
      sourceMap: true, 
      compress: { 
       warnings: false 
      } 
     }) 
    ], 
    module: { 
     rules: [ 
      { 
       test: /\.vue$/, 
       loader: 'vue-loader', 
       options: { 
        loaders: { 
        } 
       } 
      } 
     ] 
    }, 
    resolve: { 
     alias: { 
      vue$: 'vue/dist/vue.esm.js' 
     } 
    } 
}; 

Antwort

0

Uglify DOKUMENTIEREN Sie NICHT ES6, also bevor Sie irgendwas durch UglifyJS setzen, müssen Sie es zuerst in ES5 konvertieren lassen. Im Allgemeinen werden Sie das mit babel-loader tun.

Scheck https://github.com/babel/babel-loader

module: { 
    rules: [ 
    { 
     test: /\.js$/, 
     exclude: /(node_modules|bower_components)/, 
     use: { 
     loader: 'babel-loader', 
     options: { 
      presets: ['env'] 
     } 
     } 
    } 
    ] 
} 
0

UglifyJS unterstützt Pfeilfunktionen, aber vielleicht mag es Ihre kurze Handweise nicht, es zu schreiben. Haben Sie das gleiche Ergebnis mit ...

Vue.component('somecomponent', { 
    render: (h) => { h(Comp) } 
}); 

sollten Sie das nicht tun müssen, und wenn das funktioniert und nicht anders ist es sehr wahrscheinlich um einen Fehler mit Uglify.js.

+0

Ja, ich habe die gleichen Ergebnisse. Allerdings habe ich Babel Loader und "es2015" Preset hinzugefügt, und der Fehler ist verschwunden. Vielen Dank! – kurtgn