如何使用命令行美化 JavaScript 代码?

我正在编写一个批处理脚本,以美化JavaScript代码。它需要在WindowsLinux上工作。

如何使用命令行工具美化 JavaScript 代码?


答案 1

首先,选择你最喜欢的基于Javascript的Pretty Print/Beautifier。我更喜欢 http://jsbeautifier.org/那个,因为这是我首先发现的。下载其文件 https://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js

其次,下载并安装Mozilla集团基于Java的Javascript引擎Rhino。“安装”有点误导;下载 zip 文件,提取所有内容,将 js.jar放在 Java 类路径中(或 OS X 上的 Library/Java/Extensions)。然后,您可以使用类似于以下内容的调用运行脚本

java -cp js.jar org.mozilla.javascript.tools.shell.Main name-of-script.js

使用步骤 1 中的 Pretty Print/Beautifier 编写一个小 shell 脚本,该脚本将读取您的 javascript 文件,并从步骤 1 开始通过 Pretty Print/Beautifier 运行它。例如

//original code    
(function() { ... js_beautify code ... }());

//new code
print(global.js_beautify(readFile(arguments[0])));

Rhino为javascript提供了一些额外的有用函数,这些函数在浏览器上下文中不一定有意义,但在控制台上下文中确实有意义。函数 print 执行您期望的操作,并打印出一个字符串。函数 readFile 接受文件路径字符串作为参数,并返回该文件的内容。

你会调用上面的内容,比如

java -cp js.jar org.mozilla.javascript.tools.shell.Main beautify.js file-to-pp.js

您可以在 Rhino 运行的脚本中混合搭配 Java 和 Javascript,因此,如果您了解一点 Java,那么使用文本流运行它也应该不会太难。


答案 2

2014年4月更新

自从我在2010年回答这个问题以来,美化器已经被重写了。现在那里有一个python模块,一个用于nodejs的npm包,jar文件就消失了。请阅读 github.com 上的项目页面

Python 风格:

 $ pip install jsbeautifier

NPM 样式:

 $ npm -g install js-beautify

使用它(这将返回终端上的真福js文件,主文件保持不变):

 $ js-beautify file.js

使更改对文件生效,应使用以下命令:

$ js-beautify -r file.js

原始答案

添加到@Alan风暴的答案

基于 http://jsbeautifier.org/ 命令行美化器已经变得更容易使用,因为它现在(或者)基于V8 javascript引擎(c ++代码)而不是rhino(基于java的JS引擎,打包为“js.jar”)。所以你可以使用V8而不是犀牛。

如何使用:

从 http://github.com/einars/js-beautify/zipball/master 下载 jsbeautifier.org zip 文件

(这是一个链接到zip文件的下载URL,例如 http://download.github.com/einars-js-beautify-10384df.zip)

旧(不再工作,jar文件消失了)

  java -jar js.jar  name-of-script.js

新(备选)

从 svn 安装/编译 v8 lib,请参阅上述 zip 文件中的 v8/README.txt

  ./jsbeautify somefile.js

-具有与 rhino 版本略有不同的命令行选项,

- 当配置为“外部工具”时,在Eclipse中效果很好