从 coffeescript 编译到 javascript 后保持缩进
Keeping indent after compiling from coffeescript to javascript?
我有文件 app.coffee
angular
.module('app', [
'ngAnimate',
'angular-loading-bar',
'ui.router',
'oc.lazyLoad',
'ui.bootstrap',
'ngResource'
])
当我将其编译为javascript时,它看起来像这样
// Generated by CoffeeScript 1.10.0
(function() {
angular.module('app', ['ngAnimate', 'angular-loading-bar', 'ui.router', 'oc.lazyLoad', 'ui.bootstrap', 'ngResource']);
}).call(this);
有什么方法可以保持缩进吗?
除了几个简单的选项(例如 --bare
)。
你关心你的C程序生成的汇编代码是什么样子的吗?还是你的Python程序的字节码?通常你不会,你很少看它来调试特定问题。CofeeScript 生成的 JavaScript 代码是相同的。接受编译的 JS 代码不供人类使用。当然,它的格式使您可以读取它以调试问题(这很好),但这不是主要问题。
话虽如此,您可以通过外部格式化工具运行它,但是它们如何区分这两个数组:
angular
.module('app', [
'ngAnimate',
'angular-loading-bar',
'ui.router',
'oc.lazyLoad',
'ui.bootstrap',
'ngResource'
])
one_line_array = ['ngAnimate', 'angular-loading-bar']
除了使用JS代码和CoffeeScript代码之外,没有其他方法。
如果你真的想要这个,你需要修改 CoffeeScript 源代码,或者编写自己的工具来分析 CofeeScript 源代码并相应地修改 JavaScript 输出。如果使用 coffee --tokens
打印令牌,则会得到:
[标识符角度] [= =] [{ {] [标识符模块] [: ::标识符模块] [: ::标识符 ] [-> ->] [缩进 2] [缩进 2] [} }] [终结符 '] [标识符角度] [. .] [标识符模块] [CALL_START (] [字符串"应用"] [, ,] [[] [缩进 4] [字符串 'ngAnimate'] [, ,] [终止符 '] [字符串"角度加载条"] [, ,] [终止符 '] [字符串"ui.router"] [, ,] [终止符 '] [字符串 'oc.lazyLoad'] [, ,] [终止符 '] [字符串 'ui.bootstrap'] [, ,] [终止符 '] [字符串 'ng资源'] [缩进 4] [] ]] [CALL_END )] [终结者 ']
它确实将换行符存储为 [TERMINATOR 'n]
.编写(和调试!)一个这样做的工具不一定容易,而且超出了堆栈溢出答案的范围;-)
相关文章:
- 如何格式化字符串以修复Javascript中的缩进
- Javascript 意外返回值,带有特定的缩进
- JavaScript将缩进文本转换为HTML列表重复顶层<李>'s为<ul>'s
- vim JavaScript缩进插件-命令是什么
- 从 coffeescript 编译到 javascript 后保持缩进
- 在 VIM 上的脚本标记中正确缩进 JavaScript
- Vim Javascript 在以括号结尾的换行符上配置缩进宽度
- Emacs 有问题的 JavaScript 缩进
- 保存时在 Vim 中自动缩进 JavaScript 代码
- 逐行缩进 Javascript 文件
- Dreamweaver:自动缩进 JavaScript 代码
- 使用 javascript 设置的文本缩进在 Firefox 中具有双重值
- 基于 Javascript/jQuery 的带缩进的动态列表
- Javascript - 方法链上的缩进会导致分号问题
- JavaScript 文件中的 vim 缩进 html 代码
- 如何在 Emacs 的 javascript 模式下设置 2 个空格缩进
- 使用 Javascript 更改文本缩进样式
- 如何阻止emacs缩进javascript逗号分隔列表的第二行(例如array或json) ?
- 如何缩进Javascript源文件(ceditor .js)
- Vim缩进javascript的多行var声明