【问题标题】:grunt bowercopy task not found未找到 grunt bowercopy 任务
【发布时间】:2014-01-25 04:15:38
【问题描述】:

我无法弄清楚我的配置问题。当我尝试运行“grunt bowercopy”时,我收到以下错误消息:

警告:找不到任务“bowercopy”。使用 --force 继续。

如果我运行“grunt jshint”,jshint 可以正常工作。

这是我的 package.json:

{
     "name": "treblebull",
      "version": "0.0.1",
      "private": true,
      "dependencies": {
        "express": "~3.2.6",
        "jade": "~0.31.2",
        "underscore": "~1.5.2",
        "pg": "~2.11.1"
      },  
      "devDependencies": {
        "grunt": "~0.4.2",
        "grunt-bowercopy": "~0.7.1",
        "grunt-contrib-jshint": "~0.8.0",
        "load-grunt-tasks": "~0.2.1"
      }
    }

这是我的 gruntfile:

    'use strict';

    module.exports = function(grunt) {

      grunt.initConfig({
        jshint: {
          options: {
            jshintrc: '.jshintrc'
          },  
          gruntfile: {
            src: 'Gruntfile.js'
          },  
          lib: {
            src: ['lib/**/*.js']
          },  
          test: {
            src: ['test/**/*.js']
          }   
        },  
        bowercopy: {
          options: {
            clean: true
            //srcPrefix: 'bower_components'
          },  
          libs: {
            options: {
             // destPrefix: 'public/js/lib'
            },  
            files: {
              'angular.js': 'angular/angular.js'
              //'underscore.js': 'underscore/underscore.js',
              //'underscore.string.js': 'underscore.string/underscore.string.js'
            }   
          }   
        }   
      }); 

      grunt.loadNpmTasks('grunt-bowercopy');
      grunt.loadNpmTasks('grunt-contrib-jshint');

    };

【问题讨论】:

  • 您的 Gruntfile 中是否有 grunt.loadNpmTasks('grunt-bowercopy');
  • 是的,它在 gruntfile 的底部,我猜代码有点太长了,所以你必须在 gruntfile 中滚动才能看到它。

标签: node.js gruntjs bower


【解决方案1】:

运行 bower init 给自己一个 bower.json 文件,供 bowercopy 任务读取。此外,如果您已经通过 bower 安装了所有内容,请在您的 options 哈希中将 runBower 设置为 false

如果您曾经遇到过 Grunt 故障,那么值得使用 --v(详细)标志运行以查看它到底发生了什么故障。我自己运行这个,我看到它在寻找bower.json,一旦我提供了一个,任务就成功了。

【讨论】:

  • 谢谢,一切都清楚了。 --v 标志非常有用。
【解决方案2】:

你缺少任务注册,你需要注册一个你想在 grunt 中明确运行的任务,所以你需要这个

grunt.registerTask('bowercopy', ['bowercopy']);

然后就可以运行了

grunt bowercopy

【讨论】:

  • 我尝试了这两种方法,在这两种情况下,jshint 都有效,但 bowercopy 没有。如果您在我的问题中滚动到 gruntfile 的底部,您可以看到注册任务。
【解决方案3】:

由于我无法评论@dcodesmith 的答案,所以我必须留下答案。我遇到了实际添加grunt.registerTask('bowercopy', ['bowercopy']);的问题 称为 bowercopy 的任务,但它实际上不起作用。删除它实际上允许 bowercopy 复制文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多