2013-11-10 2 views
0

Я новичок в Sails.js, и у меня возникают проблемы с добавлением дополнительных задач в его файл grunt. То, что я пытаюсь сделать, это использовать autoprefixer с меньшими затратами, но каждый раз, когда я называю «парусов приподнять» Я получаю следующее сообщение об ошибке:Невозможно добавить пользовательские задачи в Sails.js Gruntfile

error: Grunt :: Warning: Task "autoprefixer:multiple_files" not found. Use --force to continue.

>> Tasks directory "grunt-autoprefixer" not found.

Вот строки, я добавил к gruntfile:

grunt.loadTasks('grunt-autoprefixer');

grunt.initConfig({ 
    autoprefixer: { 
    options: { 
     browsers: ['last 2 version', 'ie 8', 'ie 7'] 
    }, 
    multiple_files: { 
     expand: true, 
     flatten: true, 
     src: 'assets/linker/styles/*.css', 
     dest: 'assets/linker/styles/' 
    }, 
    concat: { 
     src: 'assets/linker/styles/*.css', 
     dest: 'assets/linker/styles/s.css' 
    } 
    }, 
//Rest of initConfig... 

//compileAssets task 
grunt.registerTask('compileAssets', [ 
    'clean:dev', 
    'jst:dev', 
    'less:dev', 
    'autoprefixer:multiple_files', 
    'copy:dev',  
    'coffee:dev' 
]); 

Я попытался удалить "multiple_files" из-й Задача e compileAssets. Я попытался установить autoprefixer как локально, так и глобально, но не кубик, всегда одна и та же ошибка.

Любые идеи?

Спасибо!

ответ

2

Использовать loadNpmTasks и не loadTasks.

loadNpmTasks загружает локально установленный модуль от node_modules. Это то, что вам нужно использовать.

loadTasks загружает код из указанного каталога и не выполняет такие функции, как read package.json, рекурсия через зависимости модуля и другие полезные материалы, которые обрабатываются loadNpmTasks.

Вот почему вы видите ошибку: loadTasks ищет каталог под названием «grunt-autoprefixer».

Если вам понравился источник для чтения, вы можете увидеть, что происходит в коде перед этим line. :)

Также обратите внимание: Грунт модули должны быть установлены локально из-за способа loadNpmTasks работ. Это by design. Я был пойман этим, когда я впервые начал использовать grunt, потому что я предполагал, как работает функция загрузки. Упс.

+0

Ahhh, я новый, я смотрел что-то простое. Благодаря! –

+0

Чтобы добавить к этому, я обнаружил, что эти пакеты grunt должны быть перечислены в ваших пакетах. Json под devdependancies. – airtonix

1

Вам не хватает трех букв.

grunt.loadTasks('grunt-autoprefixer'); 

должен быть:

grunt.loadNpmTasks('grunt-autoprefixer'); 

Прежней загружает задачу из каталога, которые вы укажете, последний загружает задачу из каталога в node_modules.

+0

Правильный ответ, передал его другому ответу, поскольку было больше деталей. Цените помощь, благодарю вас! –

Смежные вопросы