我正在尝试设置Grunt任务,但我在终端中收到警告
*>> Tasks directory "grunt" not found.
Warning: Task "undefined" not found. Use --force to continue.
Aborted due to warnings.*
我正在学习由Sr. Carlos Santana在本视频3中制作的开发NODE + Angular的一个例子:https://www.youtube.com/watch?v=juDeLmGjX8k
Grunt版本:
grunt-cli v1.2.0 grunt v1.0.1
节点版本:v5.1.0
Gruntfile.js
'use strict';
module.exports = function(grunt){
grunt.loadNpmTasks('grunt-jscs');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-githooks');
grunt.loadNpmTasks('grunt-shell');
grunt.loadTasks('grunt');
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
jscs:{
options:{
config: '.jscsrc',
reporter: 'checkstyle'
},
src: [
'Gruntfile.js',
'src/**/*.js',
'!src/public/bower_components/**'
]
},
jshint:{
options: {
jshintrc: '.jshintrc',
reporter: 'checkstyle'
},
src: [
'Gruntfile.js',
'src/**/*.js',
'!src/public/bower_components/**'
]
},
githooks: {
all: {
options:{
endMarker: ''
},
'pre-commit': 'analyze',
'post-checkout': 'shell:gitLog',
'post-commit': 'shell:gitLog',
'post-merge': 'shell:gitLog shell:npmInstall'
}
},
shell: {
gitLog: {
command: 'git log -1 > git-info.txt'
},
npmInstall: {
command: 'npm install'
},
serverLogs: {
command: 'pm2 logs'
},
serverStatus: {
command: 'pm2 list'
},
serverStop: {
command: 'pm2 kill'
},
serverDelete: {
command: 'pm2 delete pm2.json'
},
serverStart:{
command: 'pm2 start pm2.json'
}
}
});
grunt.registerTask('default', ['analyze']);
grunt.registerTask('analyze', 'Validate code style' ['jshint', 'jscs']);
grunt.registerTask('status', 'Shows status os node processes', ['shell:serverStatus']);
grunt.registerTask('stop', 'Stop node processes', ['shell:serverStop']);
grunt.registerTask('start', 'Start node processes', ['shell:serverStart']);
grunt.registerTask('restart', 'Restart node processes', ['stop', 'start']);
grunt.registerTask('logs', 'Tail logs for all pm2 processes', ['shell:serverLogs']);
};
的package.json
{
"name": "StudioVictory",
"version": "0.0.1",
"private": true,
"scripts": {
"preinstall": "npm prune",
"postinstall": "bower prune; bower install; grunt githooks"
},
"autor": "Carlos Santana",
"license": "MIT",
"repository": {
"type": "git",
"url": "git://github.com/XXX/XX.git"
},
"dependencies": {
"body-parser": "~1.15.1",
"cookie-parser": "~1.4.3",
"debug": "~2.2.0",
"express": "~4.13.4",
"express-handlebars": "latest",
"lodash": "*",
"morgan": "~1.7.0",
"stylus": "latest",
"nib": "latest",
"js-yaml": "latest"
},
"devDependencies": {
"bower": "latest",
"grunt": "latest",
"grunt-contrib-jshint": "latest",
"grunt-githooks": "latest",
"grunt-jscs": "latest",
"grunt-npm-install": "latest",
"grunt-shell": "latest"
}
}
执行:grunt -v:
Initializing
Command-line options: --verbose
Reading "Gruntfile.js" Gruntfile...OK
Registering Gruntfile tasks.
Registering "grunt-jscs" local Npm module tasks.
Reading C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-jscs\package.json...OK
Parsing C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-jscs\package.json...OK
Loading "jscs.js" tasks...OK
+ jscs
Registering "grunt-contrib-jshint" local Npm module tasks.
Reading C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-contrib-jshint\package.json...OK
Parsing C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-contrib-jshint\package.json...OK
Loading "jshint.js" tasks...OK
+ jshint
Registering "grunt-githooks" local Npm module tasks.
Reading C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-githooks\package.json...OK
Parsing C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-githooks\package.json...OK
Loading "githooks.js" tasks...OK
+ githooks
Registering "grunt-shell" local Npm module tasks.
Reading C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-shell\package.json...OK
Parsing C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-shell\package.json...OK
Loading "shell.js" tasks...OK
+ shell
Registering "grunt" tasks.
>> Tasks directory "grunt" not found.
Reading package.json...OK
Parsing package.json...OK
Initializing config...OK
Loading "Gruntfile.js" tasks...OK
+ analyze, default, logs, restart, start, status, stop
No tasks specified, running default tasks.
Running tasks: default
Running "default" task
Running "analyze" task
Warning: Task "undefined" not found. Use --force to continue.
Aborted due to warnings.
执行:grunt grunt
C:\JACS\WampServer2.5\www\NODEJS\StudioVictory>grunt grunt
>> Tasks directory "grunt" not found.
Warning: Task "grunt" not found. Use --force to continue.
Aborted due to warnings.
答案 0 :(得分:0)
这意味着grunt无法找到您要运行的文件。检查该目录中是否有Grunfile.js
。你还没有安装一个grunt模块吗?您可以运行grunt -v
了解更多详情。
我假设您的gruntfile有一个名为grunt的任务目录,您并不打算调用它。我需要看到更多代码才能确定。
答案 1 :(得分:0)
(代表OP发布)。
Grunt需要一个文件夹" grunt"在Gruntfile.js中的行:grunt.loadTasks(' grunt')
文件夹" grunt"需要一个文件" grunt-server.js"
请参阅:https://github.com/CodeJobs/StudioVictory/tree/develop/grunt
此文件夹在视频6中创建。
答案 2 :(得分:0)
我看到你的配置和命令我想也许你没有任何grunt命令任务,比如grunt.registerTask('default',['analyze']);然后grunt如何理解grunt grunt命令。您必须使用grunt名称创建任务,或者从Gruntfile.js所在的根运行grunt。
所以请只是运行咕噜声,它可能会解决您的问题。 grunt only命令查找Gruntfile.js并执行默认情况下的任务,否则运行带命令名的命令。