Подтвердить что ты не робот

Поместить Grunt в подкаталог

Можно ли поместить файлы конфигурации Grunt в подкаталог проекта? Я хочу сделать это, чтобы сделать вещи более организованными.

например.

  • MyProject/Грунт/Gruntfile.js

  • MyProject/Грунт/package.json

  • MyProject/Грунт/node_modules/

У меня возникают проблемы с запуском команд из Gruntfile.js в этой конфигурации. Может ли Grunt обращаться к родительскому каталогу? Или, может быть, я ошибаюсь.

sass: {
    dev: {
       files: {
           "../style.css": "../scss/style.scss"
       }
    }
}

Когда я запускаю этот Grunt, кажется, просто пожал плечами, не понимая, что я хочу, чтобы он выглядел в родительском каталоге...

Source file "scss/style.scss" not found.
4b9b3361

Ответ 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.