GruntJS设置:未找到目标

时间:2014-08-16 18:58:21

标签: javascript gruntjs

代码

我的最新提交是a repo on GitHub

问题......

我正在使用GruntJS设置一个项目(上面的链接)。在尝试运行任何Grunt任务时,我得到No "<insert-taskname>" targets found;几个例子:

  1.   
        

    否&#34; browserSync&#34;找到目标。     警告:任务&#34; browserSync&#34;失败。使用--force继续。

      
  2.   
        

    不&#34; jshint&#34;找到目标。     警告:任务&#34; jshint&#34;失败。使用--force继续。

      
  3.   
        

    不,#34; sass&#34;找到目标。     警告:任务&#34; sass&#34;失败。使用--force继续。

      
  4. 我正在做什么

    我使用load-grunt-configs插件使用外部.js Grunt配置文件。我在其他项目中使用了非常类似的设置而没有任何问题。我使用作为Gruntfile.js插件一部分的grunt-configs对象将options中初始化的共享Grunt变量传递给每个load-grunt-configs文件

    到目前为止我已尝试过......

    我已经尝试检查外部配置文件中使用的Grunt变量,仔细检查我的语法和括号匹配,以及搜索其他堆栈溢出问题而没有运气。

    任何帮助将不胜感激!谢谢。

2 个答案:

答案 0 :(得分:3)

我建议使用分解Gruntfile的惯用和内置方法。第三方解决方案往往远离Grunt API。

创建一个名为tasks/的文件夹,并在该文件夹中添加类似于您当前正在执行的文件。

使用grunt.loadTasks()

在主Gruntfile中加载所有这些文件
// Gruntfile.js
module.exports = function(grunt) {
  // Initialize config.
  grunt.initConfig({
    pkg: require('./package.json'),
  });

  // Load per-task config from separate files.
  grunt.loadTasks('tasks');
};

每个文件的格式都像mini Gruntfiles。以下是jshint的示例:

// tasks/jshint.js
module.exports = function(grunt) {
  grunt.config('jshint', {
    app: {
      options: {jshintrc: 'app/.jshintrc'},
      src: ['app/**/*.js'],
    },
  });
  grunt.loadNpmTasks('grunt-contrib-jshint');
};

以下是Grunt自己创作者的解决方案的完整示例:https://github.com/cowboy/wesbos

答案 1 :(得分:1)

你的问题在你的配置任务中。

你正在做什么

module.exports = {

你需要这样做:

module.exports.tasks = {

除此之外,我建议遵循kyle的回答,因为使用grunt的内置功能更加清晰!