Ответ 1
Да, это должно быть возможно, но вы, вероятно, захотите использовать метод grunt.file.setBase или параметр командной строки --base
, чтобы сделать задачи работают так же, как вы помещали Gruntfile в корень проекта. В противном случае вы столкнетесь с различными проблемами с задачами, которые по умолчанию не будут записываться в пути вне рабочего каталога. Например, параметр force в плагине grunt-contrib-clean.
Вот пример, который изменяет <Грустный файл на странице Начало работы для использования этого метода:
module.exports = function(grunt) {
// if you put the call to setBase here, then the package.json and
// loadNpmTasks paths will be wrong!!!
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build: {
src: 'src/<%= pkg.name %>.js',
dest: 'build/<%= pkg.name %>.min.js'
}
}
});
// Load the plugin that provides the "uglify" task.
grunt.loadNpmTasks('grunt-contrib-uglify');
// now that we've loaded the package.json and the node_modules we set the base path
// for the actual execution of the tasks
grunt.file.setBase('../')
// Default task(s).
grunt.registerTask('default', ['uglify']);
};
Я не использую SASS, поэтому не могу прокомментировать, может ли быть что-то неправильное с вашей конфигурацией задачи, но приведенное выше работает как модификация примера Getting Started.