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

最佳答案

如果您未指定--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);


您应该能够使它适应几乎所有语言。

关于google-closure-compiler - Closure Compiler-在命令行中使用Javascript解析而不从磁盘读取它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13294614/

10-12 15:31