4

潜在的 n00b 问题,但谷歌没有一个简洁的答案 - 让我们一起解决这个问题。

我从 grunt 开始,我被困在一些基本的东西上。我发现 grunt-init 已经被转移到一个单独的进程中——文档周围的碎片一开始并不明显,但这很酷。

我现在决定我想要我自己的 grunt-init 模板,它位于我网站的根目录中(现在,直到需要将它移动到 ~/.grunt-init 目录中)。我正在使用 grunt 0.3.17

并通过 grunt-init-jquery 和其他初始化模板 - 我注意到它们都使用标准的初始化提示。

我想创建一些包含与客户相关的信息的自定义提示,可能添加客户电子邮件或项目经理姓名。

但是我一生都无法弄清楚如何创建/在哪里存储可以在 grunt-init 中调用的自定义提示。

任何帮助表示赞赏

4

1 回答 1

7

更新:2012 年 2 月 8 日

似乎答案在init.process命令之内。

启动流程以开始提示输入。 init.process(选项,提示,完成)

    init.process({}, [
      // Prompt for these values
      init.prompt('name'),
      init.prompt('description'),
      init.prompt('version')
    ], function(err, props) {
      // All finished, do something with the properties
    });

prompts 参数是一个对象数组。您可以添加自己的,而无需注册新的助手或扩展提示。

可以像这样添加自定义提示:

    init.process({}, [

        // Prompt for these values.
        {
          name: 'client_name',
          message: 'Who is the client contact?',
          default: 'Joe Smith', 
          validator: /^[\w\-\.]+$/,
          warning: 'Must be only letters, numbers, dashes, dots or underscores. (If this is not for a client, say HOUSE)'
        },
        {
          name: 'project_manager',
          message: 'Who is the project manager?',
          default: 'Me', 
          validator: /^[\w\-\.]+$/,
          warning: 'Must be only letters, numbers, dashes, dots or underscores.'
        }


    ], function(err, props) {
      // All finished, do something with the properties
    });
于 2013-02-07T21:44:46.540 回答