css 的 yuicompressor 对某些文件抛出错误
yuicompressor for css throws error for some files
我刚刚尝试使用 yuicompressor CSS。适用于大多数文件,但有一个文件不适用,并给我这个错误:
"C:\Program Files (x86)\JetBrains\PhpStorm 8.0.1\jre\jre/bin/java" -jar C:/nodejs/node_modules/yuicompressor/build/yuicompressor-2.4.8.jar style.css -o style.min.css
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:21)
Caused by: java.lang.WhosebugError
at java.util.regex.Pattern$Loop.match(Pattern.java:4663)
这些行之后有上千个错误。
我在这里查看了另一个 post,但它并没有真正修复它。它说了一些关于增加堆栈大小(?)的内容,如果那是解决方案,我该怎么做? google 也不会给我任何有用的答案。
提前致谢。
要增加堆栈大小,您需要将 -Xss
选项传递给 java。默认为 512k,尝试增加它,例如 -Xss2048k
.
为此,您需要相应地修改 node_modules\yuicompressor\nodejs\cli.js
,添加 args.unshift('-Xss2048k');
:
var spawn = require('child_process').spawn,
fs = require('fs'),
compressor = require('./index'),
args = process.argv.slice(2);
args.unshift(compressor.jar);
args.unshift('-jar');
args.unshift('-Xss2048k');
...
然后在文件观察器的程序字段中指定 yuicompressor 二进制文件的路径(如 C:\Users\My.Name\AppData\Roaming\npm\yuicompressor.cmd
)。
或者,使用 java 作为程序,以不同的方式设置文件观察器:
Program: C:\Program Files (x86)\JetBrains\PhpStorm 8.0.1\jre\jre\bin\java.exe
Arguments: -Xss2048k -jar "C:\Users\My.Name\AppData\Roaming\npm\node_modules\yuicompressor\build\yuicompressor-2.4.8.jar " $FileName$ -o $FileNameWithoutExtension$.min.css
我刚刚尝试使用 yuicompressor CSS。适用于大多数文件,但有一个文件不适用,并给我这个错误:
"C:\Program Files (x86)\JetBrains\PhpStorm 8.0.1\jre\jre/bin/java" -jar C:/nodejs/node_modules/yuicompressor/build/yuicompressor-2.4.8.jar style.css -o style.min.css
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:21)
Caused by: java.lang.WhosebugError
at java.util.regex.Pattern$Loop.match(Pattern.java:4663)
这些行之后有上千个错误。
我在这里查看了另一个 post,但它并没有真正修复它。它说了一些关于增加堆栈大小(?)的内容,如果那是解决方案,我该怎么做? google 也不会给我任何有用的答案。
提前致谢。
要增加堆栈大小,您需要将 -Xss
选项传递给 java。默认为 512k,尝试增加它,例如 -Xss2048k
.
为此,您需要相应地修改 node_modules\yuicompressor\nodejs\cli.js
,添加 args.unshift('-Xss2048k');
:
var spawn = require('child_process').spawn,
fs = require('fs'),
compressor = require('./index'),
args = process.argv.slice(2);
args.unshift(compressor.jar);
args.unshift('-jar');
args.unshift('-Xss2048k');
...
然后在文件观察器的程序字段中指定 yuicompressor 二进制文件的路径(如 C:\Users\My.Name\AppData\Roaming\npm\yuicompressor.cmd
)。
或者,使用 java 作为程序,以不同的方式设置文件观察器:
Program: C:\Program Files (x86)\JetBrains\PhpStorm 8.0.1\jre\jre\bin\java.exe
Arguments: -Xss2048k -jar "C:\Users\My.Name\AppData\Roaming\npm\node_modules\yuicompressor\build\yuicompressor-2.4.8.jar " $FileName$ -o $FileNameWithoutExtension$.min.css