如何使webpack更简洁?

时间:2015-06-19 13:28:57

标签: webpack webpack-dev-server

Wes Craven的新梦魇

enter image description here

为什么每一点变化都需要这种恐怖?如何关闭这些通知?!

12 个答案:

答案 0 :(得分:15)

您可以使用Webpack CLI的--display option来设置统计信息输出的详细程度。以下是available values

E.g。

--display=minimal

答案 1 :(得分:10)

您可以将--quiet--no-info添加到webpack-dev-server的命令行:http://webpack.github.io/docs/webpack-dev-server.html#webpack-dev-server-cli

如果您在监视模式下使用webpack,可以在其后放置| awk '{if ($0 !~ /^ *\[[0-9]*\]/) {print} else {if ($0 ~ /\[built\]/) {print}}}',这将打印除未重建的文件之外的所有输出。

答案 2 :(得分:4)

我稍微更改了Haken的grep语句,以便它可以在初始加载时工作,也可以在更新JS文件时使用。

以下是package.json中的代码段。

char crypt_text[MAXLEN]


 int main()
    {
        char alphabet['z'+1], cryptchar['z'+1]; 
        std::cin>>n;

    for(int i=0; i<n; i++)
        std::cin>> dictionary[i];
    while(1)
    {
        __fpurge(stdin);
        std::cin.getline(crypt_text,MAXLEN,'\n');
        if(cin.eof()) break;
        for(int i=0; i<'z'+1; i++)
        {
            alphabet[i] = '\0';
            cryptchar[i] = '\0';
        }

        if(!crypt_kicker(0,alphabet,cryptchar)) print_asterisk();
    }
    return 0;
}

这将过滤掉包含[231],[232]等模式的所有行

答案 3 :(得分:4)

使用网络包的统计选项。

例如,删除由块生成的数百行:

stats: {
    chunks: false
}

删除有关模块的信息:

stats: {
    chunkModules: false
}

有关更多选项,请参阅the stats documentation

答案 4 :(得分:3)

从webpack文档中:

  

统计信息选项可让您精确控制要显示的捆绑软件信息。如果您不想使用quiet或noInfo,这是一个很好的中间立场,因为您需要某些捆绑软件信息,但不是全部。

     

对于webpack-dev-server,此属性必须位于devServer对象中。

//example with module.exports in webpack.config.js
module.exports = {
  //...
  stats: 'minimal'
};

//example with dev-sever in webpack.config.js
dev-sever: {
  //...
  stats: 'minimal'
}

有关其他选项,包括errors-onlynoneverbose等更多信息,请参阅文档。

ref:https://webpack.js.org/configuration/stats/

答案 5 :(得分:2)

如果您使用express版本,则可以添加noInfo选项:

import webpackMiddleware from 'webpack-dev-middleware';

app.use(webpackMiddleware(compiler, {
  noInfo: true
}));

enter image description here

答案 6 :(得分:2)

如果您正在使用karma-webpack,则可以将其放入配置文件中:

webpackMiddleware: {
 noInfo: true,
 stats: 'errors-only'
}

noInfo: false向控制台显示无信息(仅警告和错误)documentation

stats: 'errors-only'仅在错误发生时输出documentation

答案 7 :(得分:1)

quietno-info没有为我做任何有用的事情。 相反,我最终使用了grep过滤器。

npm run dev | grep -v "node_modules\|\[built\]"

这将删除包含[built]node_modules的任何行,这样可以更轻松地查看实际构建错误,而无需滚动一堆终端输出行。

我已将此信息放入package.json的scripts部分,以便我可以使用npm run dev-quiet获取已过滤的输出日志。

答案 8 :(得分:1)

使用Webpack-Dev-Server配置文件,您可以挂钩API。

使用RANDN将禁用信息性消息,除非您有错误。

使用noInfo: true删除所有控制台信息,甚至是错误。

参考:https://webpack.github.io/docs/webpack-dev-server.html#api

答案 9 :(得分:1)

使用webpack选项运行--hide-modules

答案 10 :(得分:1)

我遇到了同样的问题,我的解决方案不是新问题,但详细说明了先前的答案。在webpack.dev.js中,可以对devServer使用以下配置。请注意stats部分:

module.exports = merge(common, {
  mode: 'development',
  devtool: 'source-map',
  devServer: {
    historyApiFallback: true,
    compress: true,
    port: 3420,
    inline: true,
    stats: {
      colors: true,
      chunks: false,
      hash: false,
      version: false,
      timings: false,
      assets: false,
      children: false,
      source: false,
      warnings: true,
      noInfo: true,
      contentBase: './dist',
      hot: true,
      modules: false,
      errors: true,
      reasons: true,
      errorDetails: true,
    },
  },
  plugins: [
    new webpack.HotModuleReplacementPlugin({
    }),
  ],
});

答案 11 :(得分:0)

使用webpack-dev-middleware时,您现在必须在配置选项(logLevel)中使用as of 12/18/17而不是noInfo

示例:

require("webpack-dev-middleware")(compiler, {
    logLevel: "warn", // set the logLevel
});