所以,如果我需要改變這樣的代碼:js代碼從jQuery代碼轉換或本地?
var amazed = $(['foo', 'bar']).map(function(i, el){
return this + '!';
});
到本地像
var amazed = (['foo', 'bar']).map(function(el, i){
return el + '!';
});
我可以這樣做(https://astexplorer.net/#/0rIHMowCQf)
return j(file.source)
.find(j.Identifier).filter(ident => {
if (ident.node.name == '$') console.log(ident);
return ident.node.name == '$';
}).replaceWith('').toSource();
的第一步,這將刪除jQuery $
標誌,只是離開一個()
哪些可以工作,但感覺就像我作弊,因爲我一個我只是給CallExpression一個空的標識符。我仍然需要發現如何替換參數的順序。
能JS代碼移來用於這樣的情況下,像jQuery的轉換到本機,並最終只是:
var amazed = ['foo', 'bar'].map(function(el, i){
return el + '!';
});
我不知道答案,但我會謹慎使用這樣的事情沒有靜態分析工具的。 – Paarth
@Paarth檢查下很好的答案,好工具! – Rikard