首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用命令行美化JavaScript代码?

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

Stack Overflow用户
提问于 2008-08-20 22:29:22
回答 10查看 95.5K关注 0票数 127

为了美化JavaScript代码,我正在编写一个批处理脚本。它需要同时在和Linux上工作。

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

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2008-08-26 03:22:40

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

其次,下载并安装Mozilla组的基于Java的Javascript引擎犀牛。“安装”有点误导;下载zip文件,解压缩所有内容,将js.jar放入您的Java (或OS上的库/Java/扩展名)。然后,可以使用类似于以下内容的调用运行脚本

代码语言:javascript
运行
复制
java -cp js.jar org.mozilla.javascript.tools.shell.Main name-of-script.js

使用步骤1中的漂亮Print/Beautifier来编写一个小的shell脚本,该脚本将在您的javascript文件中读取,并从第一步开始运行这个漂亮的Print/Beautifier。例如

代码语言:javascript
运行
复制
//original code    
(function() { ... js_beautify code ... }());

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

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

您可以调用上面的内容,比如

代码语言:javascript
运行
复制
java -cp js.jar org.mozilla.javascript.tools.shell.Main beautify.js file-to-pp.js

您可以在Rhino运行脚本中混合和匹配Java和Javascript,因此,如果您了解一些Java,那么也可以通过文本流来运行Java和Javascript。

票数 72
EN

Stack Overflow用户

发布于 2010-10-28 09:38:19

2014年4月更新

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

Python风格:

代码语言:javascript
运行
复制
 $ pip install jsbeautifier

国家预防机制风格:

代码语言:javascript
运行
复制
 $ npm -g install js-beautify

要使用它(这将在终端上返回经过美化的js文件,主文件保持不变):

代码语言:javascript
运行
复制
 $ js-beautify file.js

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

代码语言:javascript
运行
复制
$ js-beautify -r file.js

原始答案

加入“艾伦·斯托姆”的答案

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

使用方法:

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

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

旧的(不再起作用了,jar文件不见了)

代码语言:javascript
运行
复制
  java -jar js.jar  name-of-script.js

新的(备选方案)

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

代码语言:javascript
运行
复制
  ./jsbeautify somefile.js

-has命令行选项与犀牛版本略有不同,

当配置为“外部工具”时,-and在Eclipse中工作得很好

票数 58
EN

Stack Overflow用户

发布于 2013-05-12 23:55:27

如果您正在使用nodejs,那么尝试丑js

在Linux或Mac上,假设已经安装了nodejs,则可以通过以下方式安装uglify:

sudo npm install -g uglify-js

然后得到以下选项:

uglifyjs -h

因此,如果我有一个源文件foo.js,它如下所示:

代码语言:javascript
运行
复制
// foo.js -- minified
function foo(bar,baz){console.log("something something");return true;}

我可以这样美化它:

uglifyjs foo.js --beautify --output cutefoo.js

默认情况下,uglify使用空格进行缩进,所以如果我想将4空间缩进转换为制表符,我可以通过Ubuntu12.04附带的unexpand运行它:

unexpand --tabs=4 cutefoo.js > cuterfoo.js

或者你可以一蹴而就:

uglifyjs foo.js --beautify | unexpand --tabs=4 > cutestfoo.js

您可以了解更多关于未展开这里的信息。

因此,在这一切之后,我得到了一个类似于以下内容的文件:

代码语言:javascript
运行
复制
function foo(bar, baz) {
    console.log("something something");
    return true;
}

更新2016-06-07

尽管安装方式是相同的,但uglify-js的维护者现在似乎正在第2版上工作。

票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档