为什么uglify-js报告'WARN:输出超过32000个字符'?

Sho*_*orn 12 css uglifyjs twitter-bootstrap

  • 构建管道是:Typescript,browserify,browserify-css,uglify.
  • 运行时库:react,bootstrap.

到目前为止,我的应用程序功能很少(这就是为什么我要问以后这是否会让我感到困惑,即使它现在似乎有效).稍后它会变得更大(react-router,redux,其他js库,如Auth0,甚至可能是一些实际的功能.)

我有一个app.css包含:

@import url("node_modules/bootstrap/dist/css/bootstrap.css");
Run Code Online (Sandbox Code Playgroud)

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

import './app.css';
Run Code Online (Sandbox Code Playgroud)

这一切似乎都起作用,因为我的helloworld反应组件显示"hello world".

但是,在构建期间,uglify报告:

WARN: Output exceeds 32000 characters
Run Code Online (Sandbox Code Playgroud)

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

查看uglify生成的文件显示,它似乎确保没有行超过32000个字符 - 大多数行截断时间仅为32000(31999处为1).

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

Sho*_*orn 9

根据DavidG的评论,你可以告诉Uglify不要抱怨这个max-line-len选项.

但是,您不能只添加该选项,因为它只有在您"美化"代码时才有效.然后,你可能不想做的其他事情.

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

"scripts": {
  "uglifyjs":"uglifyjs -b beautify=false,max-line-len=120000"
}
Run Code Online (Sandbox Code Playgroud)

以上将线路长度设置为120K - 这使警告消失.

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

  • 警告不是关于文件的大小 - 它是关于单行的长度.如果我采用那条单行并将其分成多行 - 最终结果实际上是一个*更大的*文件,下载和解析速度会慢一些 - 但警告会消失. (3认同)