Yeoman - 任务“requirejs”未找到 [英] Yeoman - task "requirejs" not found

查看:92
本文介绍了Yeoman - 任务“requirejs”未找到的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对yeoman有问题,特别是当我尝试运行grunt时,它在requirejs上失败,简单地说任务'requirejs'不存在。这真的很奇怪,因为在我的grunt文件中我有requirejs的选项定义,并且我还将它安装在package.json文件中。你知道可能是什么问题吗?



谢谢!

  //在2013-03-14使用generator-webapp生成0.1.5 
use strict;
var lrSnippet = require(grunt-contrib-livereload / lib / utils)。livereloadSnippet;
var mountFolder = function(connect,dir){
return connect.static(require(path)。resolve(dir));
};

//#Globbing
//出于性能原因,我们只匹配一个级别:
// test / spec / {,* /} *。js
//如果要匹配所有子文件夹,请使用它:
//test / spec / ** / *。js

module.exports = function(grunt) {
//载入所有grunt任务
require(matchdep)。filterDev(grunt - *)。forEach(grunt.loadNpmTasks);

//可配置路径
var yeomanConfig = {
app:app,
dist:dist
};

grunt.initConfig({
yeoman:yeomanConfig,
watch:{
coffee:{
files:[<%= yeoman.app%> / scripts / {,* /} *。coffee],
任务:[coffee:dist]
},
coffeeTest:{b $ b files:[test / spec / {,* /} *。coffee],$
文件:[<%= yeoman.app%> / styles / {,* / } *。{scss,sass}],
tasks:[compass]
},
livereload:{
文件:[
<%= yeoman.app%> / *。html,
{.tmp,<%= yeoman.app%>} / styles / {,* /}*.css,
{.tmp,<%= yeoman.app%>} / scripts / {,* /} *。js,
<%= yeoman .app%> / images / {,* /} *。{png,jpg,jpeg,webp}],
tasks:[livereload]
}
},
clean:{b $ b dist:[.tmp,<%= yeoman.dist%> / *],
server:.tmp
},
jshint:{
options:{
jshintrc:.jshintrc
},
全部:[
Gruntfile.js,
<%= yeoman.app%> / scripts / {,* /} *。js,
!<%= yeoman.app%> / scripts / vendor / *,
test / spec / {,* /} *。js]
},
coffee:{
dist:{
files:[{
//而不是在这里编译多个文件,您应该
//需要它们到您的主.coffee文件中
展开:true,
cwd:<%= yeoman .app%> / scripts,
src:* .coffee,
dest:.tmp / scripts,
ext:.js
}]
},
test:{
files:[{
expand:true,
cwd:.tmp / spec,
src:* .coffee,
dest:test / spec
}]
}
},
指南针:{
选项:{
sassDir:<%= yeoman.app%> / styles,
cssDir:.tmp / styles,
imagesDir:<%= yeoman.app%> / images ,
javascriptsDir:<%= yeoman.app%> / scripts,
fontsDir:<%= yeoman.app%> / styles / fonts,
importPath :app / components,
relativeAssets:true
},
dist:{}
},
requirejs:{
dist:{
选项:{
baseUrl:app / scripts / editor,
优化:none,
preserveLicenseComments:false,
useStrict:true,
wrap:true
}
}
},
useminPrepare:{
html:<%= yeoman.app%> ; /index.html,
选项:{
dest:<%= yeoman.dist%>
}
},
usemin:{
html:[<%= yeoman.dist%> / {,* /} *。html],
css:[<%= yeoman.dist%> / styles /{,*/}*.css],
选项:{
dirs:[<%= yeoman.dist%>]
}
},
imagemin:{
dist:{
files:[{
expand:true,
cwd:<%= yeoman.app%> / images ,
src:{,* /} *。{png,jpg,jpeg},
dest:<%= yeoman.dist%> / images
}]
}
},
cssmin:{
dist:{
files:{
<%= yeoman.dist%> / styles / main.css:[
.tmp / styles / {,* /} *。css,
<%= yeoman.app%> / styles / {, * /} *。css]
}
}
},
htmlmin:{
dist:{
options:{
removeCommentsFromCDATA :true,
// https://github.com/yeoman/grunt-usemin/issues/44
// collapseWhitespace:true,
collapseBooleanAttributes:true,
removeAttributeQuotes: true,
removeRedundantAttributes:true,
useShortDoctype:true,
removeEmptyAttributes:true,
removeOptionalTags:true
},
files:[{
expand:true,
cwd:<%= yeoman.app%>,
src:* .html,
dest:<%= yeoman.dist %>
]
}
},
复制:{
dist:{
files:[{
expand:true ,
dot:true,
cwd:<%= yeoman.app%>,
dest:<%= yeoman.dist%>,
src:[
*。{ico,txt},
.htaccess]
}]
}
},
bower:{
全部:{
rjsConfig:<%= yeoman.app%> /scripts/main.js
}
}
});

grunt.renameTask(regarde,watch);

grunt.registerTask(server,function(target){
if(target ===dist){
return grunt.task.run([build ,open,connect:dist:keepalive]);
}

grunt.task.run([
clean:s​​erver,
coffee:dist,
livereload-start,
connect:livereload,
open,
watch
]);
});

grunt.registerTask(test,[
clean:s​​erver,
coffee,
compass
]);

grunt.registerTask(build,[
clean:dist,
coffee,
compass:dist,
useminPrepare,
requirejs,
imagemin,
htmlmin,
concat,
cssmin,
uglify ,
copy,
usemin
]);

grunt.registerTask(default,[
jshint,
test,
build
]);
};


解决方案

我刚才遇到类似的问题,一个小时工作,我终于弄明白了:)

这是我的建议:

1 npm update



使用update命令确保安装了软件包。



2检查您是否制作了相同的像我这样的错误。



关于'package.json'文件
我已将所有依赖项放在依赖关系而不是devDependencies。通过这样做,npm仍然会安装所有的软件包,然而yeoman会找到它们。


I'm having problems with yeoman, specifically, when I try to run grunt, it fails on the requirejs, stating simply that "The task 'requirejs' doesn't exist". That is really strange, since in my gruntfile I have the options definition for requirejs, and I also have it installed in the package.json file. Do you know what could be the problem?

Thank you!

// Generated on 2013-03-14 using generator-webapp 0.1.5
"use strict";
var lrSnippet = require("grunt-contrib-livereload/lib/utils").livereloadSnippet;
var mountFolder = function(connect, dir) {
  return connect.static(require("path").resolve(dir));
};

// # Globbing
// for performance reasons we"re only matching one level down:
// "test/spec/{,*/}*.js"
// use this if you want to match all subfolders:
// "test/spec/**/*.js"

module.exports = function(grunt) {
  // load all grunt tasks
  require("matchdep").filterDev("grunt-*").forEach(grunt.loadNpmTasks);

  // configurable paths
  var yeomanConfig = {
    app: "app",
    dist: "dist"
  };

  grunt.initConfig({
    yeoman: yeomanConfig,
    watch: {
      coffee: {
        files: ["<%= yeoman.app %>/scripts/{,*/}*.coffee"],
        tasks: ["coffee:dist"]
      },
      coffeeTest: {
        files: ["test/spec/{,*/}*.coffee"],
        tasks: ["coffee:test"]
      },
      compass: {
        files: ["<%= yeoman.app %>/styles/{,*/}*.{scss,sass}"],
        tasks: ["compass"]
      },
      livereload: {
        files: [
          "<%= yeoman.app %>/*.html",
          "{.tmp,<%= yeoman.app %>}/styles/{,*/}*.css",
          "{.tmp,<%= yeoman.app %>}/scripts/{,*/}*.js",
          "<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,webp}"],
        tasks: ["livereload"]
      }
    },
    clean: {
      dist: [".tmp", "<%= yeoman.dist %>/*"],
      server: ".tmp"
    },
    jshint: {
      options: {
        jshintrc: ".jshintrc"
      },
      all: [
        "Gruntfile.js",
        "<%= yeoman.app %>/scripts/{,*/}*.js",
        "!<%= yeoman.app %>/scripts/vendor/*",
        "test/spec/{,*/}*.js"]
    },
    coffee: {
      dist: {
        files: [{
          // rather than compiling multiple files here you should
          // require them into your main .coffee file
          expand: true,
          cwd: "<%= yeoman.app %>/scripts",
          src: "*.coffee",
          dest: ".tmp/scripts",
          ext: ".js"
        }]
      },
      test: {
        files: [{
          expand: true,
          cwd: ".tmp/spec",
          src: "*.coffee",
          dest: "test/spec"
        }]
      }
    },
    compass: {
      options: {
        sassDir: "<%= yeoman.app %>/styles",
        cssDir: ".tmp/styles",
        imagesDir: "<%= yeoman.app %>/images",
        javascriptsDir: "<%= yeoman.app %>/scripts",
        fontsDir: "<%= yeoman.app %>/styles/fonts",
        importPath: "app/components",
        relativeAssets: true
      },
      dist: {}
    },
    requirejs: {
      dist: {
        options: {
          baseUrl: "app/scripts/editor",
          optimize: "none",
          preserveLicenseComments: false,
          useStrict: true,
          wrap: true
        }
      }
    },
    useminPrepare: {
      html: "<%= yeoman.app %>/index.html",
      options: {
        dest: "<%= yeoman.dist %>"
      }
    },
    usemin: {
      html: ["<%= yeoman.dist %>/{,*/}*.html"],
      css: ["<%= yeoman.dist %>/styles/{,*/}*.css"],
      options: {
        dirs: ["<%= yeoman.dist %>"]
      }
    },
    imagemin: {
      dist: {
        files: [{
          expand: true,
          cwd: "<%= yeoman.app %>/images",
          src: "{,*/}*.{png,jpg,jpeg}",
          dest: "<%= yeoman.dist %>/images"
        }]
      }
    },
    cssmin: {
      dist: {
        files: {
          "<%= yeoman.dist %>/styles/main.css": [
            ".tmp/styles/{,*/}*.css",
            "<%= yeoman.app %>/styles/{,*/}*.css"]
        }
      }
    },
    htmlmin: {
      dist: {
        options: {
          removeCommentsFromCDATA: true,
          // https://github.com/yeoman/grunt-usemin/issues/44
          //collapseWhitespace: true,
          collapseBooleanAttributes: true,
          removeAttributeQuotes: true,
          removeRedundantAttributes: true,
          useShortDoctype: true,
          removeEmptyAttributes: true,
          removeOptionalTags: true
        },
        files: [{
          expand: true,
          cwd: "<%= yeoman.app %>",
          src: "*.html",
          dest: "<%= yeoman.dist %>"
        }]
      }
    },
    copy: {
      dist: {
        files: [{
          expand: true,
          dot: true,
          cwd: "<%= yeoman.app %>",
          dest: "<%= yeoman.dist %>",
          src: [
            "*.{ico,txt}",
            ".htaccess"]
        }]
      }
    },
    bower: {
      all: {
        rjsConfig: "<%= yeoman.app %>/scripts/main.js"
      }
    }
  });

  grunt.renameTask("regarde", "watch");

  grunt.registerTask("server", function(target) {
    if (target === "dist") {
      return grunt.task.run(["build", "open", "connect:dist:keepalive"]);
    }

    grunt.task.run([
      "clean:server",
      "coffee:dist",
      "livereload-start",
      "connect:livereload",
      "open",
      "watch"
    ]);
  });

  grunt.registerTask("test", [
    "clean:server",
    "coffee",
    "compass"
  ]);

  grunt.registerTask("build", [
    "clean:dist",
    "coffee",
    "compass:dist",
    "useminPrepare",
    "requirejs",
    "imagemin",
    "htmlmin",
    "concat",
    "cssmin",
    "uglify",
    "copy",
    "usemin"
  ]);

  grunt.registerTask("default", [
    "jshint",
    "test",
    "build"
  ]);
};

解决方案

I came across a similar problem just now, and after an hour working, I finally figure it out :)

Here is my suggest:

1 npm update

use the update command to make sure you have the packages installed.

2 check if you have made the same mistake like me.

About the 'package.json' file: I have placed all my dependencies in "dependencies" instead of "devDependencies". By doing so, npm will still install all the packages, yet yeoman will fall to find them.

这篇关于Yeoman - 任务“requirejs”未找到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆