Ответ 1
Попробуйте запустить:
$ npm install
После этого, если вы запустите его, и ошибка все еще сохраняется или есть еще одна, то вы, вероятно, не установили рубин, компас или оба:)
Когда я использую команду grunt, она показывает мне следующую ошибку:
$ grunt
Loading "Gruntfile.js" tasks...ERROR
>> Error: Cannot find module 'load-grunt-tasks'
Warning: Task "default" not found. Use --force to continue.
Aborted due to warnings.
Execution Time (2015-02-07 18:05:42 UTC)
loading tasks 339ms ███████████████████████████████████████████████ 99%
Total 344ms
Я уже пробовал - npm install, npm команды обновления. Было бы здорово, если бы кто-то помог мне с этим. Спасибо!
Добавление содержимого Gruntfile.js
'use strict';
var paths = {
js: ['*.js', 'test/**/*.js', '!test/coverage/**', '!bower_components/**', 'packages/**/*.js', '!packages/**/node_modules/**', '!packages/contrib/**/*.js', '!packages/contrib/**/node_modules/**'],
html: ['packages/**/public/**/views/**', 'packages/**/server/views/**'],
css: ['!bower_components/**', 'packages/**/public/**/css/*.css', '!packages/contrib/**/public/**/css/*.css']
};
module.exports = function(grunt) {
if (process.env.NODE_ENV !== 'production') {
require('time-grunt')(grunt);
}
// Project Configuration
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
assets: grunt.file.readJSON('config/assets.json'),
clean: ['bower_components/build'],
watch: {
js: {
files: paths.js,
tasks: ['jshint'],
options: {
livereload: true
}
},
html: {
files: paths.html,
options: {
livereload: true,
interval: 500
}
},
css: {
files: paths.css,
tasks: ['csslint'],
options: {
livereload: true
}
}
},
jshint: {
all: {
src: paths.js,
options: {
jshintrc: true
}
}
},
uglify: {
core: {
options: {
mangle: false
},
files: '<%= assets.core.js %>'
}
},
csslint: {
options: {
csslintrc: '.csslintrc'
},
src: paths.css
},
cssmin: {
core: {
files: '<%= assets.core.css %>'
}
},
nodemon: {
dev: {
script: 'server.js',
options: {
args: [],
ignore: ['node_modules/**'],
ext: 'js,html',
nodeArgs: ['--debug'],
delayTime: 1,
cwd: __dirname
}
}
},
concurrent: {
tasks: ['nodemon', 'watch'],
options: {
logConcurrentOutput: true
}
},
mochaTest: {
options: {
reporter: 'spec',
require: [
'server.js',
function() {
require('meanio/lib/core_modules/module/util').preload(__dirname + '/packages/**/server', 'model');
}
]
},
src: ['packages/**/server/tests/**/*.js']
},
env: {
test: {
NODE_ENV: 'test'
}
},
karma: {
unit: {
configFile: 'karma.conf.js'
}
}
});
//Load NPM tasks
require('load-grunt-tasks')(grunt);
/**
* Default Task
*/
grunt.hook.push('clean', -9999);
grunt.hook.push('concurrent', 9999);
if (process.env.NODE_ENV === 'production') {
grunt.hook.push('cssmin', 100);
grunt.hook.push('uglify', 200);
} else {
grunt.hook.push('jshint', -200);
grunt.hook.push('csslint', 100);
}
//Default task.
grunt.registerTask('default', ['hook']);
//Test task.
grunt.registerTask('test', ['env:test', 'mochaTest', 'karma:unit']);
// For Heroku users only.
// Docs: https://github.com/linnovate/mean/wiki/Deploying-on-Heroku
grunt.registerTask('heroku:production', ['cssmin', 'uglify']);
};
Попробуйте запустить:
$ npm install
После этого, если вы запустите его, и ошибка все еще сохраняется или есть еще одна, то вы, вероятно, не установили рубин, компас или оба:)
У меня была такая же проблема, проблема для меня была в моем пакете. json, где я фактически не устанавливал пакет NPM, и он не был автоматически установлен, как считалось ранее. Попробуйте сделать
npm install --save-dev load-grunt-tasks
Если это не сработает, вы можете предоставить файл package.json, чтобы мы могли получить немного больше информации.
У меня была та же проблема, что и у вас, похоже, что в файле grunt отсутствует требуемый шаг инициализации.
Изменив это:
require('load-grunt-tasks')(grunt);
/**
* Default Task
*/
grunt.hook.push('clean', -9999);
:
require('load-grunt-tasks')(grunt);
grunt.loadNpmTasks('grunt-hook');
/**
* Default Task
*/
grunt.hook.push('clean', -9999);
Добавление вызова grunt.loadNpmTasks, я могу пройти мимо этой проблемы. Проблема в том, что теперь я получаю
Задача "clean" не найдена. Используйте -force для продолжения.
Глядя на остальную часть файла grunt, я не вижу задачу реестра для очистки. Если я перейду в mean.io docs, похоже, что сборка не работает. Возможно, это часть почему? Я думаю, что я спросил, что значит для версии gulp mean-cli, возможно, почему. Я удалю и сниму его сверху:)
Я думаю, что проблема связана с тем, где объявляются зависимости npm, и тем, как Heroku обрабатывает их. В нескольких словах проверьте, соответствуют ли пакеты npm как dev-зависимостям и переместите их в блок зависимостей, как предлагается здесь: fooobar.com/info/144503/....