⚙️

Find Unused Assets in Project

步骤

找出 RN 项目中所有没有使用到的资源文件:

  1. 找出资源文件夹下所有资源
  2. 找出所有代码文件中引用资源地方
  3. 格式化 12
  4. diff 12

找出资源文件

最好将图片放到统一的文件夹下(src/img)

$ find PROJECT_ROOT/src/img -type f > ~/Downloads/org

找出所有代码资源引用

最好使用 require 代替图片 import

$ find . -type f -name "*.ts" -or -name "*.tsx" -or -name "*.js" -not -path "*node_modules*" | xargs grep "require(" > ~/Downloads/key
  • 代码有 ts, tsx 和 js
  • 使用 grep 获取包含 requre( 的行

格式化 12

格式化 1

org:

./t.png
./b/bb.png
./a.jpg
./c/cc.mp4

去掉头:

$ gsed -i "s/\.\///g" org

排序:

$ sort org -u > org.sorted

格式化 2

key:

file1.ts   blablarequire('../img/a.png')adlak
file2.tsx   blablarequire('../img/b.jpg') blabla
file3.js   blablarequire('../img/c/c.png') blabla require('../img/c/a.mp4')

获取关键字符(img/abc.png):

$ grep -oE "img\/.*?\.(png|jpg|mp4)" key > key2

key2:

img/a.png
img/b.jpg
img/c/c.png
img/c/a.mp4

删掉前缀:

$ gsed -i "s/img\///g" key2

排序:

$ sort key2 -u > key2.sorted

diff

$ diff org.sorted key2.sorted > unused.file

unused.file

1d0
< .DS_Store
8d6
< arrow_up.png
14d11
< ask_icon.png
20d16
< bang.png
25d20
< billing_normal.png
27d21
< bindphone.png
31d24
< cancel-gray.png
34,35d26
< chat.png
< company/.DS_Store
37d27
< company/call.png
39d28
< company/friendCircle.png
41d29
< company/link.png
52d39
< company/share.png
54d40
< company/wechat.png
61,63d46
< cpy_call.png
< cpy_gz.png
< cpy_more.png

在我们一生中,命运赐予我们每个人三个导师,三个朋友,三名敌人,三个挚爱。但这十二人总是不以真面目示人,总要等到我们爱上他们、离开他们、或与他们对抗时,才能知道他们是其中哪种角色。