1+ #! /bin/bash
2+
3+ # 查找所有引用jquery-adapter的文件
4+ FILES=$( find /Users/cc11001100/github/JSREI/js-script-hook/src -type f -name " *.ts" | xargs grep -l " jquery-adapter" )
5+
6+ # 替换所有文件中的jQuery引用为原生DOM API
7+ for FILE in $FILES ; do
8+ echo " 处理文件: $FILE "
9+
10+ # 替换引入语句
11+ sed -i ' ' ' s/import { jQuery as \$, JQuery } from .*.\/utils\/jquery-adapter.*/import { dom } from "..\/..\/..\/..\/utils\/dom-utils";/g' " $FILE "
12+ sed -i ' ' ' s/import { jQuery as \$ } from .*.\/utils\/jquery-adapter.*/import { dom } from "..\/..\/..\/..\/utils\/dom-utils";/g' " $FILE "
13+
14+ # 替换JQuery类型为HTMLElement
15+ sed -i ' ' ' s/JQuery<HTMLElement>/HTMLElement/g' " $FILE "
16+ sed -i ' ' ' s/: JQuery</: HTMLElement/g' " $FILE "
17+
18+ # 替换$()选择器为document.querySelector()或document.createElement()
19+ sed -i ' ' ' s/\$(\(.*\))/dom(\1)/g' " $FILE "
20+
21+ # 替换常见的jQuery方法为原生DOM方法
22+ sed -i ' ' ' s/\.on(/\.addEventListener(/g' " $FILE "
23+ sed -i ' ' ' s/\.off(/\.removeEventListener(/g' " $FILE "
24+ sed -i ' ' ' s/\.append(/\.appendChild(/g' " $FILE "
25+ sed -i ' ' ' s/\.html(/\.innerHTML = /g' " $FILE "
26+ sed -i ' ' ' s/\.addClass(/\.classList.add(/g' " $FILE "
27+ sed -i ' ' ' s/\.removeClass(/\.classList.remove(/g' " $FILE "
28+ sed -i ' ' ' s/\.toggleClass(/\.classList.toggle(/g' " $FILE "
29+ sed -i ' ' ' s/\.attr(\([^,]*\))/\.getAttribute(\1)/g' " $FILE "
30+ sed -i ' ' ' s/\.attr(\([^,]*\), \(.*\))/\.setAttribute(\1, \2)/g' " $FILE "
31+ sed -i ' ' ' s/\.css(\([^,]*\), \(.*\))/\.style.setProperty(\1, \2)/g' " $FILE "
32+
33+ echo " 完成处理: $FILE "
34+ done
35+
36+ echo " 所有文件处理完毕"
0 commit comments