如何编写NPM script对glob匹配文件或文件夹内文件批量执行命令
实现方案
方案1:跨平台通用(推荐)
不需要依赖系统shell,Windows/Mac/Linux都能直接运行
- 第一步:安装所需开发依赖
npm install --save-dev glob-run gltf-pipeline
- 第二步:在package.json的
scripts字段中新增配置
{ "scripts": { "compress-gltf": "glob-run gltf-pipeline -i assets/[name].gltf -o assets/[name]Draco.glb -d" } }
- 第三步:执行命令即可批量处理所有匹配文件
npm run compress-gltf
执行后会自动遍历assets目录下所有.gltf文件,分别生成对应带Draco后缀的glb文件,完全匹配你给出的命令规则。
方案2:无额外依赖(仅适配Unix环境)
如果你只用Mac/Linux环境,或者Windows下用WSL/Git Bash,可以不用安装额外工具,直接用shell循环实现:
直接在package.json的scripts中添加:
{ "scripts": { "compress-gltf": "for file in assets/*.gltf; do name=$(basename \"$file\" .gltf); gltf-pipeline -i \"$file\" -o \"assets/${name}Draco.glb\" -d; done" } }
执行方式和方案1一致。
补充说明
- 如果需要递归匹配assets下所有子目录的gltf文件,把glob匹配规则改成
assets/**/*.gltf即可 - 可以根据需求修改输出路径,比如要输出到单独的compressed目录,提前创建好目录后把输出参数改成
-o compressed/[name]Draco.glb就行
内容的提问来源于stack exchange,提问作者Adonis Stavridis
相关产品推荐
相关产品推荐

