回答

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/ – Sinan 2010-01-12 13:26:40

+0

思南是對的。鏈接轉移到http://jsbeautifier.org/ – 2010-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和所有參與者! – 2011-03-06 13:45:20

6

到目前爲止,我已經找到了幾個在線的國家:

還在尋找的東西,我可以在命令行運行。

+0

我想你已經找到你需要現在(4年後)什麼,但總有Python的json.tool: http://richardlog.com/post/12743073497/pretty-printing-json-and-xml-on-mac-osx – 2012-03-27 16:59:57

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中配置爲「外部工具」時

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/

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,雖然安裝是相同的。

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命令。