API Docs for:
Show:

CodeGenerator Class

Extends Object
Module: code_generator

代码生成器,根据ejs模板生成代码或代码文件。

Constructor

CodeGenerator

(
  • ejsTemplateFile
  • [encoding='utf8']
)

Parameters:

  • ejsTemplateFile String

    模板文件

  • [encoding='utf8'] String optional

    文件编码

Example:

   var CodeGenerator = require('code_generator');

   var ejsOptions = {
       user: {
           name: 'happy framework'
       }
   };

   var generator = new CodeGenerator('./templates/hello.ejs');

   var content = generator.generateToString(ejsOptions);
   console.log(content);

   generator.generateToTargetFile(ejsOptions);

   CodeGenerator.executeTemplateDirectory('./templates', ejsOptions);

Methods

executeTemplateDirectory

(
  • ejsTemplateDirectory
  • ejsOptions
  • [encoding='utf8']
)
static

递归执行指定目录下的所有模板文件。

Parameters:

  • ejsTemplateDirectory String

    模板目录

  • ejsOptions Object

    执行模板的上下文对象

  • [encoding='utf8'] String optional

    文件编码

Returns:

Example:

   CodeGenerator.executeTemplateDirectory('./templates', ejsOptions);

generateToString

(
  • ejsOptions
)

生成为字符串。

Parameters:

  • ejsOptions Object

    执行模板的上下文对象

Returns:

Example:

   var content = generator.generateToString(ejsOptions);
   console.log(content);

generateToTargetFile

(
  • ejsOptions
  • [targetFile]
  • [cover=true]
)

生成为目标文件。

Parameters:

  • ejsOptions Object

    执行模板的上下文对象

  • [targetFile] String optional

    如果该参数为空,模板中必须包含如下代码:<% _out.targetFile = './outputs/hello.generator.html'; %>

  • [cover=true] Boolean optional

    如果目标文件已经存在,true 为覆盖,false为不覆盖。

Returns:

Example:

   generator.generateToTargetFile(ejsOptions);

setDefautEjsOptions

(
  • defautEjsOptions
)

使模板的每次执行,都能访问到 defautEjsOptions 中的属性。

Parameters:

  • defautEjsOptions Object

Returns:

Properties

defautEjsOptions

Object private

ejsTemplateFile

String private

encoding

String private

Default: 'utf8'