Skip to content

Latest commit

 

History

History
53 lines (39 loc) · 1.57 KB

README.md

File metadata and controls

53 lines (39 loc) · 1.57 KB

super-ejs

超级版ejs

在ejs基础上增加了api —— gerenateDir, 可以将一整个ejs模板目录(自动忽略二进制文件)全部编译,并存储到对应的目录上

!!!: 如果目录里存在文件,gerenateDir方法会直接对文件进行覆盖

使用

npm i super-ejs -S

or

yarn add super-ejs

const superEjs = require('super-ejs');

superEjs.gerenateDir(
  outputPath: '生成的目标目录路径',
  tplDirPath: '你的ejs模板目录路径',
  { name: componentName, hi() { return 'hi'; } }, // ejs的data参数,具体看ejs官网
  { _with: true }, // ejs的options参数,具体看ejs官网
  { parseFilename: true, ignore: 'node_modules/**' },
  // superEjs特有的参数
)
  .catch(err => {
    if (err?.type === 'superEjsParseError') {
      type Err = {
        type:'superEjsParseError';
        data: {
          path: string;
          error: unknown;
        }[];
      };
      console.log(err.data);
    }
  });

参数

参数 默认值 描述
parseFilename false 支持把文件名或目录名用ejs来解析并重命名
ignore undefined 要忽略的目录或文件,值可以是字符串或数组

参数 parseFilename

parseFilenametrue 时, 会把文件名或目录名用ejs来解析并重命名, 如文件名 <%= name %>.tsx, 但不支持设置为 true, 因为这个文件名是不合法的。

parseFilename 可以为一个字符串替换的函数, 比如 (orignal) => orignal.replace('__name__', name), 最好使用这种方式进行替换