在Windows和Linux上运行的命令行JavaScript代码美化工具
我正在寻找支持JavaScript的代码美化工具,可以在Windows和Linux上运行,并且可以在批处理脚本中使用。任何建议?在Windows和Linux上运行的命令行JavaScript代码美化工具
首先,选择你最喜欢的Javascript基于漂亮打印/美化。我更喜欢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写一个小的shell脚本,将在你的JavaScript文件中读取,并通过漂亮的打印运行/美化来自调用运行脚本步骤1。例如
//original code
(function() { ... js_beautify code ... }());
//new code
print(global.js_beautify(readFile(arguments[0])));
犀牛让JavaScript一些额外的有用的功能不一定意义在浏览器方面,但在控制台的上下文做。功能打印做你所期望的,并打印出一个字符串。函数readFile接受一个文件路径字符串作为参数并返回该文件的内容。
你会调用上述类似
java -cp js.jar org.mozilla.javascript.tools.shell.Main beautify.js file-to-pp.js
你可以混合在你的犀牛运行脚本匹配的Java和Javascript,所以如果你知道一点的Java应该不会太难得到这个与文本流一起运行。
我想你已经找到你需要现在(4年后)什么,但总有Python的json.tool: http://richardlog.com/post/12743073497/pretty-printing-json-and-xml-on-mac-osx – 2012-03-27 16:59:57
我的漂亮的DIFF工具在JavaScript中完全用所以它同样适用于所有操作系统。它支持美化和缩小JavaScript,CSS,以及使用XML风格分隔符(包括HTML)的任何标记语言。
与美化的配发的问题是输出和滤波和服务器缺乏严重命令行美化的的选择。我最近开始修改YUI压缩器来美化代码。如果你想让自己更漂亮,我必须强烈推荐这种方法。 YUI是开放源代码的,并附带一个ant构建文件,使其可以很容易地进行修改和编译。
UPDATE 2014年4月:
,因为我回答了这个在2010年的美化已被重写中现在有一个Python模块,NPM软件包的NodeJS和jar文件已经一去不复返了。请阅读project page on github.com。
Python的风格:
$ pip install jsbeautifier
NPM风格:
$ npm -g install js-beautify
使用它:
$ js-beautify file.js
原来的答复
添加到@Alan Storm的答案
基于http://jsbeautifier.org/的命令行美化器已经变得更容易使用了,因为它现在(可选)基于V8 javascript引擎(C++代码)而不是犀牛(基于java的JS引擎,打包为“js.jar”)。所以你可以用V8代替犀牛。
使用方法:从 http://github.com/einars/js-beautify/zipball/master
下载jsbeautifier.org zip文件(这是链接到一个zip文件,如http://download.github.com/einars-js-beautify-10384df.zip下载URL)
旧(不再工作, jar文件消失)
java -jar js.jar name-of-script.js
新的(二选一)
安装/编译V8 lib中从SVN,看看V8/readme.txt中上述zip文件
./jsbeautify somefile.js
都具有一个略有不同的犀牛版本的命令行选项,
- 和伟大工程在Eclipse中配置为“外部工具”时
我写了一篇文章,解释如何在5分钟内构建command-line JavaScript beautifier implemented in JavaScript。因人而异。
- Download the latest stable Rhino and unpack it somewhere, e.g. ~/dev/javascript/rhino
- Download beautify.js which is referenced from aforementioned jsbeautifier.org then copy it somewhere, e.g. ~/dev/javascript/bin/cli-beautifier.js
Add this at the end of beautify.js (using some additional top-level properties to JavaScript):
// Run the beautifier on the file passed as the first argument. print(j23s_beautify(readFile(arguments[0])));
Copy-paste the following code in an executable file, e.g. ~/dev/javascript/bin/jsbeautifier.sh:
#!/bin/sh java -cp ~/dev/javascript/rhino/js.jar org.mozilla.javascript.tools.shell.Main ~/dev/web/javascript/bin/cli-beautifier.js $*
(optional) Add the folder with jsbeautifier.js to PATH or moving to some folder already there.
这里是写在.NET支持命令行以及交互模式一个javascript美化: http://www.rahulsingla.com/blog/2010/12/jsbeautifier-net-javascript-beautifier-in-net
有不同的NET 2.0没有外部的依赖。
我无法为接受的答案添加评论,因此这就是为什么您会看到本应不存在的帖子的原因。
基本上我还需要一个Java代码中的JavaScript美化工具,令我惊讶的是没有任何工具可以找到。所以我完全基于接受的答案编写了一个(它包装了jsbeautifier.org beautifier .js脚本,但可以从java或命令行调用)。
的代码位于https://github.com/belgampaul/JsBeautifier
我用犀牛和从控制台beautifier.js
USAGE:Java的罐子jsbeautifier.jar脚本压痕
例如:Java的罐子jsbeautifier.jar“功能FF(){返回;}”从Java代码2
USAGE: 公共静态字符串jsBeautify(字符串jsCode,整数indentSize)
欢迎您扩展代码。在我的情况下,我只需要缩进,所以我可以在开发时检查生成的JavaScript。
希望能为您节省一些时间在您的项目中。
如果您使用的NodeJS然后尝试uglify-js
在Ubuntu 12.04,假设你已经安装的NodeJS,则可以安装带有丑化:
sudo npm install -g uglify-js
然后拿到选项:
uglifyjs -h
所以,如果我有一个源文件foo.js
它看起来像这样:
// foo.js -- minified
function foo(bar,baz){console.log("something something");return true;}
我可以美化它,如下所示:
uglifyjs foo.js --beautify --output cutefoo.js
uglify
使用空间的默认缩进,所以如果我想4空间缩进转换为制表符我可以通过unexpand
在Ubuntu中12.04来运行它搭配:
unexpand --tabs=4 cutefoo.js > cuterfoo.js
或者,你可以做到这一切一气呵成:
uglifyjs foo.js --beautify | unexpand --tabs=4 > cutestfoo.js
可以here
所以这一切后我风了一个文件中找到更多关于unexpand,看起来像这样:
function foo(bar, baz) {
console.log("something something");
return true;
}
更新2016年6月7日
它似乎uglify-js的维护者现在正在处理version 2,虽然安装是相同的。
插件我相信当你问的命令行工具,你只是想美化批次所有js文件。
在这种情况下的Intellij IDEA(11.5测试)可以做到这一点。
你只需要选择任何项目文件并选择“密码” - >主IDE菜单中的“格式化代码..”。然后在对话框中选择“目录中的所有文件...”,然后按“enter”。 只要确保您为JVM专用了足够的内存。
使用现代的JavaScript方式:
使用Grunt结合的jsbeautifier plugin for Grunt
您可以轻松地安装到一切使用npm你的开发环境。
所有你需要的是设置一个Gruntfile.js与适当的任务,这也可以涉及文件连接,lint,uglify,minify等,并运行grunt命令。
你给的链接断开,那它应该是一个我认为, HTTP:// jsbeautifier .org/ – Sinan 2010-01-12 13:26:40
思南是对的。链接转移到http://jsbeautifier.org/ – 2010-01-15 20:17:54
我是如何做到的: :〜$ sudo apt-get install libv8-dev libv8-2.2.18 :〜$ cd einars-js-beautify -f90ce72/v8 :〜$ G ++ -o jsbeautify jsbeautify.cpp -lv8 -llib -lpthread 这只是工作。感谢Einar Lielmanis和所有参与者! – 2011-03-06 13:45:20