[英]javascript codes refacting using ruby
假设我有一些这样的javascript代码:
function Person(){}
var pro=Person.prototype;
pro["setName"]=function(){}
pro["setAge"]=function(){}
....
现在,我将使用闭包编译器来缩小源代码。
但是,由于Closure Compiler编译永远不会更改字符串文字,因此我想替换一下我自己。
所以在编译代码之前,我要替换这样的字符串文字:
var a="setName",b="setAge";
function Person(){}
var pro=Person.prototype;
pro[a]=function(){}
pro[b]=function(){}
我想用红宝石做这项工作,然后我有两个问题:
我尝试逐行扫描文件,但是如何查找字符串文字并进行替换呢?
由于我必须生成像'a,b'这样的变量,如何确保它们不与我的源代码冲突? 例如,我生成如下代码:
var something="setName";
那如果在我的源代码中定义了一个名为“ something”的变量或函数呢?
而不是这样做,您应该考虑使用gzip
在关闭文件最小化之后压缩文件。
gzip
工作原理是在输入数据中查找重复的字符串,并用指向前一个字符串的指针替换该字符串的第二次出现。 它将对所有输入数据执行此操作,而不仅仅是javascript字符串文字。
我认为您的整体想法不正确,尤其是1)太复杂,无法在单个网页中回答。 对于2),从Javascript代码外部执行该操作同样很困难,但是您可以通过几行将原始Javascript代码附加起来,请参考Here ,运行Javascript并获取变量列表。
如果出于某种原因您担心的是原始JS大小而不是压缩的JS(大多数人应该只担心压缩的大小)。 也许您应该考虑启用“别名所有字符串”编译器选项(在Closure Compiler的Java API中可用)?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.