javascript - Yeoman - 找不到任务 "requirejs"

标签 javascript requirejs yeoman gruntjs

我在使用 yeoman 时遇到了问题,具体来说,当我尝试运行 grunt 时,它在 requirejs 上失败,简单地指出“任务‘requirejs’不存在”。这真的很奇怪,因为在我的 gruntfile 中我有 requirejs 的选项定义,而且我还在 package.json 文件中安装了它。您知道可能是什么问题吗?

谢谢!

// 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"
  ]);
};

最佳答案

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

这是我的建议:

1 个 npm 更新

使用更新命令确保您已安装包。

2看看你有没有和我一样的错误。

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

关于javascript - Yeoman - 找不到任务 "requirejs",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15471337/

相关文章:

返回未定义的javascript字符串长度

node.js - Yeoman - Gulp spawn cmd enoent

node.js - 请求错误 : getaddrinfo ENOTFOUND github. com

javascript - 堆如何知道按什么排序?

javascript - Knockoutjs 复杂绑定(bind)组合选择表

javascript - 找不到 Require.js

javascript - 尽管脚本已下载,但 requirejs 根本不注入(inject)任何内容

javascript - 使用 Bower-installer 时忽略特定主文件

javascript - 如何撤消 .detach()?

jquery - 使用 require.js 加载 Highcharts