2017-05-31 6 views
24

私はwebpackを使用しており、自分のサイトを展開したいと考えています。私は縮小化し、私のJavaScriptコードをバンドルした場合、私はこのエラーを持っている:Webpackを使用してES6コードを縮小する方法は?

'use strict'; 

export class Button { // <-- Error happens on this line 
    constructor(translate, rotate, text, textscale = 1) { 
     this.position = translate; 
     this.rotation = rotate; 
     this.text = text; 
     this.textscale = textscale; 
    } 
} 

注キーワードexportが除去された同梱のコードで:ここ

Parse error: Unexpected token: name (Button)

は私のバンドルされていないコードがあります。開発段階では、エラーは発生しません。ここでは、WebPACKの私の設定ファイルを見つけることができる:私はfalseにPRODを変更した場合、私は上からのエラーを持っている場合はtrue

var webpack = require('webpack'); 

var PROD = true; 

module.exports = { 
    entry: "./js/entry.js", 
    output: { 
     path: __dirname, 
     filename: PROD ? 'bundle.min.js' : 'bundle.js' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.css$/, 
       loader: "style-loader!css-loader" 
      } 
     ] 
    }, 
    plugins: PROD ? [ 
     new webpack.optimize.UglifyJsPlugin({ 
      compress: { 
       warnings: false 
      }, 
      output: { 
       comments: false, 
      }, 
     }) 
    ] : [] 
}; 

、私は、エラーをしたん。私の質問はWebpackでES6を有効にすることですか?

+0

私はあなたのコードをバベルと蒸散したくないと思いますか? –

+1

https://github.com/webpack-contrib/babili-webpack-pluginとhttps://www.npmjs.com/package/uglify-esが気になります(ただし、私は後者をウェブパック)。 –

答えて

47

答えがまだ分かりませんが、ウェブパックプラグインとしてuglifyjs-webpack-pluginのベータ版を含めることができます。uglify-esを使用してES6コードを縮小できます。あなたのwebpack.config.jsで

npm install uglifyjs-webpack-plugin 

、その後:

const Uglify = require("uglifyjs-webpack-plugin"); 

module.exports = { 
    entry: ..., 
    output: ..., 
    plugins: [ 
     new Uglify() 
    ] 
}; 
+0

最後に、webpackを使用して小型化するための素晴らしいソリューション!ありがとう – tristanbbq

+2

掘削の時間の後、これは私の問題を解決した唯一のものでした。 – micjamking

+0

ありがとう、すぐに私のために働いた。 –

0

このデフォルトのWebPACKの設定持つ:

> npm list -g uglifyjs-webpack-plugin 
+-- 
| `-- [email protected] 
| `-- [email protected] 
`-- [email protected] 
    `-- [email protected] 

esnextターゲットと私のために働いていた次のことを:

npm i -D uglifyjs-webpack-plugin 

は現在、地元uglifyjs-のWebPACK-プラグインをもたらす:

> npm list uglifyjs-webpack-plugin 
`-- [email protected]  

webpack.config.js

const UglifyJSPlugin = require('uglifyjs-webpack-plugin') 
... 
plugins: [ 
    //new webpack.optimize.UglifyJsPlugin() @0.4.6 doesn't work 
    new UglifyJSPlugin() // @1.2.2 works with esnext 
] 

は、関連するメンテナの記事を参照してください:

関連する問題