В настоящее время я пытаюсь настроить grunt-sync для запуска внутри часов, и у меня возникают проблемы. Я сообщил о проблеме на странице модуля на github, но решил опубликовать здесь, чтобы привлечь внимание всех разработчиков, а не ждать, пока один участник наткнется на мой отчет о проблеме.
Итак, я думаю, что это может быть просто пробел в моем понимании того, как выполнять грубые задачи через часы. У меня уже есть часы, работающие для нескольких задач, и я добавляю grunt-sync в свой рабочий процесс, чтобы автоматизировать публикацию моих изменений в сетевом каталоге, что бла-бла-бла ... не важно; мои часы работают для некоторых вещей, но не для этого. Я опускаю соответствующий раздел конфигурации вместе с моими «одновременными», «кармой» и «дерзкими» задачами, чтобы дать вам суть моей общей конфигурации ворчания.
module.exports = function(grunt){
grunt.initConfig({
pkg: grunt.file.readJSON("package.json"),
project: {
app: 'app',
},
sync:{
main: {
files:
[
{
cwd: 'app/',
src: [
'**/*.js',
'**/*.html',
'**/*.css',
'!app/node_modules/**'
],
dest: ['publish/']
}
],
verbose: true
}
},
karma: {
unit: {
configFile: 'test/karma.conf.js'
},
continuous:{
configFile: 'test/karma.conf.js',
singleRun: true,
browsers: ['PhantomJS']
}
},
sass:{
dev: {
options:{
style: 'expanded',
compass: false
},
files:{
'app/css/app.css':'app/css/app.scss'
}
},
dist: {
options: {
style: 'compressed',
compass: false
},
files:{
'app/css/app.css':'app/css/app.scss'
}
}
},
watch: {
sass: {
files: 'app/css/**/{,*/}*.{scss,sass}',
tasks: ['sass:dev']
},
styles: {
files: ['app/css/app.css'],
tasks: ['autoprefixer']
},
// karma: {
// files: ['test/*.js',
// 'test/**/*.js'
// ],
// tasks: ['karma:unit:run']
// },
livereload:{
options: {livereload: true},
files: ['app/**/*'],
},
sync:{
files: ['app/**'],
tasks: ['sync:main']
}
},
concurrent:
{
target: {
tasks: [
'karma:unit',
'watch'
],
options: {
logConcurrentOutput: true
}
}
}
});
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
grunt.registerTask('default', [
'sass:dev',
'concurrent:target'
]
);
};
В настоящее время получаю следующее предупреждение, когда я ворчу
Warning: Task "sync:main" not found. Use --force to continue.
Aborted due to warnings.
Поскольку есть только основная подзадача, я подумал, что, возможно, сработает изменение часов с выполнения ['sync:main'] на выполнение ['sync']. Предупреждение исчезает, но poof ничего не происходит... поэтому я не уверен, связана ли проблема с моей конфигурацией или с реализацией модуля.
Есть идеи?
Изменить, чтобы добавить:
На сайте github модуля я вижу следующее в sync.json
{
"main": {
"files": [{
"src": ["**"],
"dest": "bin/to",
"cwd": "bin/from"
}]
}
}
так что это заставило бы меня поверить, что "main" - это имя, которое я должен использовать для подзадачи синхронизации. Я действительно сбит с толку тем, почему grunt не распознает его в моей конфигурации, но я не очень хорошо разбираюсь в анализе кода для модулей grunt.
grunt sync:main
из терминала без предупреждений? - person Kyle Robinson Young   schedule 23.07.2014grunt sync:main
, это означает, что задача не загружена. Убедитесь, чтоgrunt-sync
указан в спискеdevDependencies
вашегоpackage.json
, чтобыrequire('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks)
мог его забрать. - person Kyle Robinson Young   schedule 24.07.2014