3

我从脚本内部调用 Closure Compiler (closurecompiler.jar)。该脚本还生成了一些 Closure Compiler 需要编译的 javascript。有没有办法将此 javascript 解析为 Closure 编译器,而无需将其写入磁盘并使用--js.

4

1 回答 1

6

如果不指定 --js 参数,编译器将从标准输入中读取。这将完全取决于您使用的操作系统和脚本语言,但您应该能够打开通往子进程的管道并写入它。例如,如果您在 Linux/Mac/Unix 上使用 PHP:

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w")   // stdout is a pipe that the child will write to
);

$process = proc_open('/path/to/java -jar compiler.jar', $descriptorspec, $pipes);

// Write the source script to the compiler
fwrite($pipes[0], $string_that_contains_your_script);
fclose($pipes[0]);

// Get the results
$compiled_script = stream_get_contents($pipes[1]);
fclose($pipes[1]);

$return_value = proc_close($process);

您应该能够使其适应几乎任何语言。

于 2012-11-19T19:26:01.257 回答