24 lines
708 B
Bash
Executable File
24 lines
708 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
# 将大型 SFC 的内联 scoped CSS 外置,保留 <style scoped src="..."> 的编译作用域。
|
|
while IFS= read -r -d '' file; do
|
|
if (( $(wc -l < "${file}") <= 900 )); then
|
|
continue
|
|
fi
|
|
if ! rg -q '<style scoped>' "${file}"; then
|
|
continue
|
|
fi
|
|
base="${file%.vue}"
|
|
css="${base}.css"
|
|
awk '
|
|
/<style scoped>/ { inside = 1; next }
|
|
/<\/style>/ { inside = 0; next }
|
|
inside { print }
|
|
' "${file}" > "${css}"
|
|
name="$(basename "${css}")"
|
|
perl -0pi -e "s#<style scoped>.*?</style>#<style scoped src=\"./${name}\"></style>#s" "${file}"
|
|
done < <(find "${ROOT_DIR}/frontend/src" -name '*.vue' -print0)
|