te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - Is it possible to prompt user for input in any grunt task? - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Is it possible to prompt user for input in any grunt task? - Stack Overflow

programmeradmin5浏览0评论

I'm attempting to use Grunt to make a directory in a project for new posts to a blog. It would essentially create a directory inside of a posts directory that is named YYYYMMDDDD-PostNameInPascalCase.

In order to do this, I'd have to prompt the user for post name each time that I execute the task. I know that grunt-init prompts users for creating projects from project templates, but I'm curious if there's a way to do this inside the Gruntfile.js file for an already established project.

Any thoughts?

I'm attempting to use Grunt to make a directory in a project for new posts to a blog. It would essentially create a directory inside of a posts directory that is named YYYYMMDDDD-PostNameInPascalCase.

In order to do this, I'd have to prompt the user for post name each time that I execute the task. I know that grunt-init prompts users for creating projects from project templates, but I'm curious if there's a way to do this inside the Gruntfile.js file for an already established project.

Any thoughts?

Share Improve this question asked May 19, 2013 at 4:06 mbeasleymbeasley 4,8745 gold badges30 silver badges39 bronze badges 3
  • you mean on any any? like asking you for input before running something like grunt-contrib-pass? – a Commented May 19, 2013 at 10:12
  • @a Yup - exactly. I have a feeling I'm wishing here. Even if it required modifying a specific task though, that'd be okay too. – mbeasley Commented May 19, 2013 at 12:21
  • Latest docs, with alternatives to create "dynamic tasks" gruntjs./frequently-asked-questions#dynamic-alias-tasks – Uyric Commented Nov 9, 2021 at 17:35
Add a ment  | 

2 Answers 2

Reset to default 13

It's been a while since this question was last asked, but there is a project on Github that attempts to do what the questioner was looking for. It's called grunt-prompt and here's the url: https://github./dylang/grunt-prompt. It's basically a way to integrate prompts into the Gruntfile. From the project readme you would do something like:

grunt.initConfig({
  prompt: {
    target: {
      options: {
        questions: [
        {
          config: 'config.name', // arbitray name or config for any other grunt task
           type: '<question type>', // list, checkbox, confirm, input, password
          message: 'Question to ask the user',
          default: 'value', // default value if nothing is entered
          choices: 'Array|function(answers)',
          validate: function(value), // return true if valid, error message if invalid
          filter:  function(value), // modify the answer
          when: function(answers) // only ask this question when this function returns true
        }
      ]
    }
  },
},
})

Yes, you can do something like this:

grunt.registerTask('makePost', 'Make a new post dir.', function(n) {
  if (n == null) {
    grunt.log.warn('Post name must be specified, like makePost:PostNameGoesHere.');
  }

  // Run other tasks here
  grunt.task.run('foo:' + n, 'bar:' + n, 'baz:' + n);
});

For more infomation and source on how to pass some arguments look at the Grunt FAQ.

发布评论

评论列表(0)

  1. 暂无评论