2016-12-08 9 views
20

WebpackのUglifyプラグインでconsole.logsを削除しようとしていますが、WebpackにバンドルされているUglifyプラグインにはそのオプションがありません。Webpack&Uglifyでconsole.logsを削除する

私はこのようなWebPACKのからuglify初期化しています:new webpack.optimize.UglifyJsPlugin()

私の理解では、私はすべてのオプションを取得するには、スタンドアロンUglifyのlibが使用できるということですが、私はどちらかわかりませんか?

問題はdrop_consoleが機能していないことです。

答えて

15

drop_consoleをお試しください:

plugins: [ 
    new Webpack.optimize.UglifyJsPlugin({ 
     compress: { 
     drop_console: true, 
     } 
    } 
] 

更新:WebPACKのv4のためにそれが少し変更されています

const UglifyJSPlugin = require('uglifyjs-webpack-plugin'); 

... 

optimization: { 
    minimizer: [ 
    new UglifyJSPlugin({ 
     uglifyOptions: { 
     compress: { 
      drop_console: true, 
     } 
     } 
    }) 
    ] 
} 
+1

私が試した、まさにですが、そうでありません何でもする。 コードが醜いことがわかりますが、コンソールログは削除されません。 –

+0

私は実際に反対をしようとしていますが、残念ながら 'drop_console:false'を設定することは私を助けませんでした。 – Ryan

+0

私はそれを試してみて、それは完璧に働いた –

36

UglifyJsPluginで、私たちはコメント、警告、コンソールログを扱うことができますが、これらすべてを開発モードで削除することはお勧めできません。まず、あなたがprov env or dev envためwebpackを実行しているかどうかをチェックし、それがprod envであるならば、あなたはこのように、これらすべてを削除することができます。

var debug = process.env.NODE_ENV !== "production"; 

plugins: !debug ? [ 
    new webpack.optimize.UglifyJsPlugin({ 

    // Eliminate comments 
     comments: false, 

    // Compression specific options 
     compress: { 
     // remove warnings 
      warnings: false, 

     // Drop console statements 
      drop_console: true 
     }, 
    }) 
] 
: [] 

参考:uglifyOptions内部uglifyjs-のWebPACK - プラグイン、ラップオプションについてhttps://github.com/mishoo/UglifyJS2#compressor-options

+0

私はdrop_console:trueを使用していますが、コンソールログを削除しません。 Firs私は、webpacks uglifyプラグインは、公式のwebpackドックにそれらの言及がないので、それらのオプションが付属していません。 しかし、私は正しいuglifyプラグインを使用しているようですが、drop_consoleは機能しません。 ここに私のwebpackの設定です:http://pastebin.com/tvymXfZ0 –

+0

これを試してください:http://hastebin.com/kunokasenu.js これは私のprodの設定です、私も別のdevの設定があります。 –

+0

同じコードを使用していますが、webpack -pを使用してビルドするとすべてうまく動作しています。 –

3

対象:

plugins: [ 
    new UglifyJSPlugin({ 
     uglifyOptions: { 
      compress: { 
       drop_console: true 
      } 
     } 
    }) 
] 
2

これはWebPACKのv4のための新しい構文は次のとおりです。

optimization: { 
    minimizer: [ 
    new UglifyJSPlugin({ 
     uglifyOptions: { 
     compress: { 
      drop_console: true 
     }, 
     output: { 
      comments: false 
     } 
     }, 
    }), 
    ], 
}, 
0
私はデバッグ構成でのWebPACK v4のための包括的な答えを追加した

const UglifyJsPlugin = require('uglifyjs-webpack-plugin') 
var debug = process.env.NODE_ENV !== "production"; 

..... 
optimization: { 
     minimizer: !debug ? [ 
      new UglifyJsPlugin({ 

        // Compression specific options 
        uglifyOptions: { 
         // Eliminate comments 
         comments: false, 

         compress: { 
          // remove warnings 
           warnings: false, 

          // Drop console statements 
           drop_console: true 
         }, 
        } 

       }) 
      ] 
      : [] 
    } 

package.jsonでの私のスクリプトはとても似ています:

"webpackDev": "npm run clean && export NODE_ENV=development && npx webpack", 
"webpackProd": "npm run clean && export NODE_ENV=production && npx webpack -p" 
関連する問題