Yeoman - 任务“requirejs”未找到 [英] Yeoman - task "requirejs" not found
问题描述
我对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: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 update
使用update命令确保安装了软件包。
2检查您是否制作了相同的像我这样的错误。
关于'package.json'文件:
我已将所有依赖项放在依赖关系而不是
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屋!