2017-03-03 113 views
10
  • 构建管道是:Typescript,browserify,browserify-css,uglify。
  • 运行时库:反应,引导。

我的应用程序到目前为止只有很少的功能(这就是为什么我会问这是否会咬我以后,即使它似乎现在工作)。后来,它会得到更大的(反应的路由器,终极版,其他的js库,例如Auth0,甚至一些实际的功能。)为什么uglify-js报告'警告:输出超过32000个字符'?

我有一个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试图告诉我的,但是最重要的是什么?

+2

它是[uglify选项]之一(https://www.npmjs.com/package/uglify-js#beautifier-options) – DavidG

回答

5

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

但是,您不能只添加该选项,因为它只适用于“美化”代码。然后做其他你可能不想做的事情。

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

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

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

这是一个比答案更多的解决方法 - 它回答了我的问题“我怎么压制它”。我仍然不知道为什么它警告我这个问题 - 旧版浏览器或其他问题,我不知道。

+0

一个大的js文件可能会在移动网络上下载很慢,一个大的js文件对于旧设备也可能很慢解析。 –

+1

警告与文件大小无关 - 大约是单行的长度。如果我把这条单一的大行分成多行 - 最终结果实际上是一个*较大的文件,下载和解析速度会更慢 - 但警告将消失。 – Shorn