const fs = require('fs'); let code = fs.readFileSync('src/components/TerminalPanel.vue', 'utf8'); const regexTouchMove = /onTouchKeyboardTouchMove = \(event: TouchEvent\) => \{[\s\S]*?touchScrollLastTime = now;\n\s*\};/g; const newTouchMove = `onTouchKeyboardTouchMove = (event: TouchEvent) => { // 通过 stopImmediatePropagation 拦截 xterm 内部那些“接管浏览器滚动”的事件处理器。 // 但绝对不要自己掉用 event.preventDefault(),从而把物理滚动和动量动画原模原样还给浏览器与操作系统。 event.stopImmediatePropagation(); };`; code = code.replace(regexTouchMove, newTouchMove); // Also remove touchstart redundant vars code = code.replace(/touchScrollLastY = event\.touches\[0\]\?\.clientY \|\| 0;\n\s*touchScrollLastTime = performance\.now\(\);\n/g, ''); fs.writeFileSync('src/components/TerminalPanel.vue', code);