【问题标题】:Why does uglify-js report 'WARN: Output exceeds 32000 characters'?为什么 uglify-js 报告“警告:输出超过 32000 个字符”?
【发布时间】:2017-03-03 00:14:27
【问题描述】:
  • 构建管道是:Typescript、browserify、browserify-css、uglify。
  • 运行时库:react、bootstrap。

到目前为止,我的应用程序几乎没有功能(这就是为什么我要问这是否会在以后对我不利,尽管它现在似乎可以工作)。稍后它会变得更大(react-router、redux、其他 js 库,如 Auth0,甚至可能还有一些实际功能。)

我有一个app.css,其中包含:

@import url("node_modules/bootstrap/dist/css/bootstrap.css");

然后我将其导入到我的index.tsx 中:

import './app.css';

这一切似乎都有效,因为我的 helloworld 反应组件显示“hello world”。

但是,在构建过程中,丑化报告:

WARN: Output exceeds 32000 characters

我应该忽略它吗?如果是这样,有没有办法抑制它?

查看 uglify 生成的文件表明,它似乎确保没有超过 32000 个字符的行 - 大多数行在 32000 处截断(一个在 31999)。

但是有一行var css='/*!\n * Bootstrap v3.3.7 ...' 有 120K 个字符长。我想这就是 Uglify 试图告诉我的,但有什么大不了的?

【问题讨论】:

标签: css twitter-bootstrap uglifyjs


【解决方案1】:

根据 DavidG 的评论,您可以使用 max-line-len 选项告诉 Uglify 不要抱怨此问题。

但是,您不能只添加该选项,因为它仅在您“美化”代码时才有效。然后它会执行您可能不想做的其他事情。

解决方案是使用-b 选项来启用美化,然后告诉 Uglify 不要实际美化。 o_O

"scripts": {
  "uglifyjs":"uglifyjs -b beautify=false,max-line-len=120000"
}

上面将行长度设置为 120K - 这使得警告消失了。

虽然这更像是一种解决方法而不是答案 - 它回答了我的问题的“我如何抑制它”部分。我仍然不知道为什么它会警告我 - 旧浏览器的问题或其他问题,我不知道。

【讨论】:

  • 一个大的 js 文件在移动网络上下载可能很慢,一个大的 js 文件在旧设备上解析也可能很慢。
  • 警告不是关于文件的大小 - 它是关于单行的长度。如果我将那条大行分成多行 - 最终结果实际上将是一个 更大的 文件,下载和解析速度会更慢 - 但警告会消失。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
  • 2014-09-25
相关资源
最近更新 更多