[英]How can I use JSBeautify from the command line?
我喜欢jsbeautifier.org ,我看到他们有一个带有代码的github 存储库。
自述文件有两个示例说明如何通过命令行使用此工具:
import jsbeautifier
res = jsbeautifier.beautify('your javascript string')
res = jsbeautifier.beautify_file('some_file.js')
和:
opts = jsbeautifier.default_options()
opts.indent_size = 2
res = jsbeautifier.beautify('some javascript', opts)
如何将其合并到脚本( myjsbeautify.py
)中,以便它可以接受stdin
或参数(文件名)并输出到stdout
? 我还想使用keep array indentation
的选项。
所需的语法
cat ugly.js | myjsbeautify.py
要么
myjsbeautify.py ugly.js
您的示例是用作库而不是命令行。 如果您尝试自己创建一个可以接受参数并将其传递给 JSBeautifier 的脚本,您应该查看argparse模块。 它有一些很好的例子来帮助你前进。 来自文档的示例:
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('infile', nargs='?', type=argparse.FileType('r'),
... default=sys.stdin)
>>> parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'),
... default=sys.stdout)
>>> parser.parse_args(['input.txt', 'output.txt'])
Namespace(infile=<_io.TextIOWrapper name='input.txt' encoding='UTF-8'>,
outfile=<_io.TextIOWrapper name='output.txt' encoding='UTF-8'>)
>>> parser.parse_args([])
Namespace(infile=<_io.TextIOWrapper name='<stdin>' encoding='UTF-8'>,
outfile=<_io.TextIOWrapper name='<stdout>' encoding='UTF-8'>)
编辑:您还可以使用jsbeautifier.py
本身使用的getopt 。 如果你只是想使用jsbeautifier.py
作为命令行工具,请阅读源码中的usage
函数。
通常,您可以使用fileinput
模块,它允许您从标准输入或位置参数中命名的文件中读取。
我只是pip install jsbeautify
并将js-beautify
添加到我的路径( /usr/local/bin/js-beautify
)。
您可以按预期使用它:
js-beautify --keep-array-indentation file.json > file.pretty.json
并使用 help 检查更多参数:
js-beautify --help
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.