2017-03-07 14 views
2

最近Webpack 2にアップグレードしましたが、ブラウザのすべてのconsole.logが消え、すべてのredux-logger出力とすべてのJavaScriptエラーと警告が消えました。Webpack 2でconsole.log出力を制御する

私はdevとtestの2つの設定を持っています。それらは事実上同じですが、devにはconsole.logがあり、テストには含まれません。テストでそれらを有効にするには?

ここconsole.logsがありDEVです:

const webpack = require('webpack'); 
const ExtractTextPlugin = require('extract-text-webpack-plugin'); 

module.exports = { 
    devtool: 'source-map', 

    entry: [ 
    'bootstrap-loader', 
    'webpack-hot-middleware/client', 
    './src/index', 
    ], 

    output: { 
    publicPath: '/dist/', 
    }, 

    module: { 
    rules: [{ 
     test: /\.scss$/, 
     use: [ 
     { loader: 'style-loader' }, 
     { loader: 'css-loader', options: { localIdentName: '[path][name]--[local]' } }, 
     { loader: 'postcss-loader', options: { plugins: function() { return [ require('autoprefixer') ]; }}}, 
     { loader: 'sass-loader' }, 
     ] 
    }, { 
     test: /\.css$/, 
     use: [ 
     'style-loader', 
     'css-loader', 
     ], 
    }], 
    }, 

    devServer: { 
    hot: true, 
    contentBase: '/dist/', 
    publicPath: '/dist/' 
    }, 

    plugins: [ 
    new webpack.DefinePlugin({ 
     'process.env': { NODE_ENV: '"development"' }, 
     __DEVELOPMENT__: true, 
    }), 
    new ExtractTextPlugin({ filename: 'bundle.css' }), 
    new webpack.HotModuleReplacementPlugin(), 
    new webpack.NoEmitOnErrorsPlugin(), 
    ], 
}; 

ここではないテストは、ですが、必要があります。

のconstのWebPACKは=( 'WebPACKのを')が必要ですが、 const ExtractTextPlugin = require( 'extract-text-webpack-plugin');

module.exports = { 
    devtool: 'source-map', 

    entry: ['bootstrap-loader/extractStyles'], 

    output: { 
    publicPath: 'dist/', 
    }, 

    module: { 
    rules: [{ 
     test: /\.scss$/, 
     use: [ 
     { loader: 'style-loader' }, 
     { loader: 'css-loader' }, 
     { loader: 'postcss-loader', options: { plugins: function() { return [ require('autoprefixer') ]; }}}, 
     { loader: 'sass-loader' }, 
     ] 
    }, { 
     test: /\.css$/, 
     use: [ 
     'style-loader', 
     'css-loader', 
     ], 
    }], 
    }, 

    plugins: [ 
    new webpack.DefinePlugin({ 
     'process.env': { NODE_ENV: '"test"' }, 
     __DEVELOPMENT__: true, 
    }), 
    new ExtractTextPlugin({ filename: 'bundle.css' }), 
    new webpack.optimize.UglifyJsPlugin({ sourceMap: true }), 
    ], 
}; 

最初にUglifyプラグインの疑いがあり、削除しようとしました。結果はありません。何がありますか?

+0

どのような 'console.log'ですか?あなたのアプリから(明示的に 'console.log'を呼び出す)、またはビルドツールから(例えばHMRメッセージ)? –

+0

アプリから、redux-loggerなどからconsole.logがブラウザに表示されます –

答えて

0

テスト設定では、entryにはあなたのアプリが含まれていません。したがって、バンドルされず、console.logは存在しないため呼び出されません。実際はあなたのアプリ全体は放棄されています。だから、テスト設定にもあなたのアプリケーションエントリポイントを含める必要があります:

entry: ['bootstrap-loader/extractStyles', './src/index'], 
+0

アプリは正常に動作しますが、console.logはそこにはありません。実際、Webpack 1ではすべてが正常に機能しました。あなたのことを試してみて、何が起こるか見てみましょう。 –

+0

これは不可能ではありません。しかし、おそらく 'redux-logger'は[開発中のログのみ](https://github.com/evgenyrodionov/redux-projects)で示されているように、開発時(' process.env.NODE_ENV === 'development' logger#ログオンリー開発)。 –

+0

私は述語です:()=>((process.env.NODE_ENV === '開発')||(process.env.NODE_ENV === 'テスト'))、両方のために動作するはずです。 webpack 2にアップグレードするまではすべて動いていました。移行ガイドに従って、Webpackの設定だけを変更しました。そして、それは単にredux-loggerではありません - JavaScriptのエラーや警告も抑制されます –

関連する問題