在Windows和Linux上运行的命令行JavaScript代码美化工具


83

我正在寻找支持JavaScript的代码美化工具,可以在Windows和Linux上运行,并且可以在批处理脚本中使用。任何建议?

59

首先,选择你最喜欢的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应该不会太难得到这个与文本流一起运行。

+3

你给的链接断开,那它应该是一个我认为, HTTP:// jsbeautifier .org/ 12 1月. 102010-01-12 13:26:40

  0

思南是对的。链接转移到http://jsbeautifier.org/ 15 1月. 102010-01-15 20:17:54

+2

我是如何做到的: :〜$ 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和所有参与者! 06 3月. 112011-03-06 13:45:20

+1

这些似乎是一个移动的目标。现在jsbeautifier网站上的信息说它是用python编写的。 26 4月. 112011-04-26 03:57:03

  0

更新CMDLINE用户,以下回购具有易于安装独立的命令行工具漂亮的印刷JS:https://github.com/einars/js-beautify.git 29 8月. 122012-08-29 19:31:53

  0

使用采用现代化的JS方法咕噜:HTTP:/ /stackoverflow.com/questions/18985/what-javascript-code-beautifier-can-i-use-via-the-command-line-on-windows-and-li/25855828#25855828 15 9月. 142014-09-15 19:53:23

  0

你可以很容易地运行,而无需来自节点的java。有一个叫做js-beautify的npm包。安装完成后,您可以运行命令js-beautify将您想要的文件作为参数传递。详情请参阅:https://www.npmjs.com/package/js-beautify 13 10月. 152015-10-13 20:28:37

  0

我必须做错了什么。我得到* js:uncaught JavaScript运行时异常:ReferenceError:“js_beautify”未定义。*运行命令后* java -jar js.jar beautify.js my-ugly-javascript.js *。我将'print(js_beautify(readFile(arguments [0])));'添加到beautify.js的底部,并运行Rhino 1.7.7。有任何想法吗? 25 1月. 162016-01-25 12:47:40

  0

我发现它不喜欢符号'(function(){..blah ..}());'所以它永远不会执行此代码。我注释掉了第一个'(function(){'和最后一个'}());'它开始工作。你去:) 25 1月. 162016-01-25 13:25:04

  0

你需要参考'global.js_beautify'。我会看看编辑。 16 1月. 172017-01-16 00:26:57


6

到目前为止,我已经找到了几个在线的国家:

还在寻找的东西,我可以在命令行运行。

  0

我想你已经找到你需要现在(4年后)什么,但总有Python的json.tool: http://richardlog.com/post/12743073497/pretty-printing-json-and-xml-on-mac-osx 27 3月. 122012-03-27 16:59:57


-3

这是一个免费的独立美化(以及更多):

http://www.yaldex.com/Free_JavaScript_Editor.htm


11

我的漂亮的DIFF工具在JavaScript中完全用所以它同样适用于所有操作系统。它支持美化和缩小JavaScript,CSS,以及使用XML风格分隔符(包括HTML)的任何标记语言。

http://prettydiff.com/?m=beautify


-1

与美化的配发的问题是输出和滤波和服务器缺乏严重命令行美化的的选择。我最近开始修改YUI压缩器来美化代码。如果你想让自己更漂亮,我必须强烈推荐这种方法。 YUI是开放源代码的,并附带一个ant构建文件,使其可以很容易地进行修改和编译。


14

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中配置为“外部工具”时

+3

或者如果你更喜欢python over v8,现在还有* python模块。 04 10月. 112011-10-04 00:15:43

+1

npm包被称为js-beautify 13 10月. 152015-10-13 20:31:27


0

我写了一篇文章,解释如何在5分钟内构建command-line JavaScript beautifier implemented in JavaScript。因人而异。

  1. Download the latest stable Rhino and unpack it somewhere, e.g. ~/dev/javascript/rhino
  2. Download beautify.js which is referenced from aforementioned jsbeautifier.org then copy it somewhere, e.g. ~/dev/javascript/bin/cli-beautifier.js
  3. 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]))); 
    
  4. 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 $* 
    
  5. (optional) Add the folder with jsbeautifier.js to PATH or moving to some folder already there.


0

这是一个非常有用的美化/缩进你的js文件的网站。我经常使用它。 检查:http://jsbeautifier.org/


0

这里是写在.NET支持命令行以及交互模式一个javascript美化: http://www.rahulsingla.com/blog/2010/12/jsbeautifier-net-javascript-beautifier-in-net

有不同的NET 2.0没有外部的依赖。


-1

我使用这个(http://jsbeautifier.atomproject.net/)美化。它的在线和免费。


1

我无法为接受的答案添加评论,因此这就是为什么您会看到本应不存在的帖子的原因。

基本上我还需要一个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。

希望能为您节省一些时间在您的项目中。


23

如果您使用的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,虽然安装是相同的。

+2

这是**正确的**命令行JavaScript代码美化的答案。 19 4月. 162016-04-19 09:05:35

  0

'uglifyjs -b'不仅仅修复缩进,它重新排列和重写代码,可能是为了提高效率。这不是我想要的。我在Ubuntu 14.04中使用了较旧的版本。 14 8月. 172017-08-14 03:28:32

  0

您能否再解释一下uglifyjs -b如何重新排列和重写代码? 14 8月. 172017-08-14 18:06:38


-1

如果你用记事本+ +这里是记事本++ http://www.sunjw.us/jsminnpp/


0

插件我相信当你问的命令行工具,你只是想美化批次所有js文件。

在这种情况下的Intellij IDEA(11.5测试)可以做到这一点。

你只需要选择任何项目文件并选择“密码” - >主IDE菜单中的“格式化代码..”。然后在对话框中选择“目录中的所有文件...”,然后按“enter”。 只要确保您为JVM专用了足够的内存。


0

在控制台中,你可以使用Artistic Style(又名的astyle)与--mode=java
它工作的很好,它是免费的,开源的和跨平台的(Linux,Mac OS X,Windows)。


0

使用现代的JavaScript方式:

使用Grunt结合的jsbeautifier plugin for Grunt

您可以轻松地安装到一切使用npm你的开发环境。

所有你需要的是设置一个Gruntfile.js与适当的任务,这也可以涉及文件连接,lint,uglify,minify等,并运行grunt命令。


-1

尝试记事本+ +(自1.15更名为JSTool)插件JSMinNpp

http://www.sunjw.us/jsminnpp/