能否用EJS CLI递归处理整个目录?有无现成开源方案?
批量处理EJS模板目录的实用工具
如果你不想自行编写自定义代码,以下几个开源工具可以满足批量处理含EJS占位符目录的需求:
ejs-cli-tool
这是专门为扩展EJS批量目录处理能力开发的工具,支持递归遍历源目录下的所有EJS文件,渲染完成后按原目录结构输出到目标目录。
安装命令:npm install -g ejs-cli-tool使用示例(可按需传入数据文件):
ejs-cli-tool --src my-template --dest output --data ./config/data.jsongulp-ejs(结合Gulp工作流)
如果你正在使用Gulp构建项目,gulp-ejs可以快速集成实现批量渲染。
先安装依赖:npm install gulp gulp-ejs gulp-rename --save-dev在项目根目录创建
gulpfile.js,添加渲染任务:const gulp = require('gulp'); const ejs = require('gulp-ejs'); const rename = require('gulp-rename'); gulp.task('render-ejs', () => { return gulp.src('my-template/**/*.ejs') .pipe(ejs({ title: '批量渲染示例', /* 这里添加你的模板数据 */ })) .pipe(rename({ extname: '.html' })) // 移除.ejs后缀,可根据需求调整 .pipe(gulp.dest('output')); });执行任务开始渲染:
gulp render-ejsj2cli
该工具原本针对Jinja2模板,但支持EJS语法的核心子集,且原生支持目录级批量处理(需要Python环境)。
安装命令:pip install j2cli使用示例:
j2 my-template/ output/ --data ./data.json它会自动递归遍历源目录的所有文件,保持目录结构不变,渲染后输出到目标目录。
内容的提问来源于stack exchange,提问作者Artem Ptushkin
相关产品推荐
相关产品推荐

