2016-08-24 3 views
0

Какая команда фактически выполнена? Как использование npm start со следующими включены в package.jsonКак работает команда grunt?

"scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "start": "node index.js" 
    } 

npm start работает node index.js за кулисами,

Точно так же, что делает grunt бег (за кадром)?

ответ

2

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

Плагин Grunt состоит из одного файла задачи. Этот файл по существу является ничем иным, как сценарием Node.js, который выполняет задание. Он имеет доступ к настройкам, переданным плагину, и может использовать API-интерфейс Grunt для доступа к файловой системе, но в остальном это просто сценарий Node.js.

Нетрудно написать плагин Grunt, и если вам интересно узнать больше о Grunt, это хороший способ познакомиться с ним. Я лично написал несколько генераторов статических сайтов в качестве плагинов Grunt, и это было очень полезно. Grunt task file ie. gruntfile.js выглядит примерно так,

module.exports = function(grunt) { 
 

 
    // 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'); 
 

 
    // Default task(s). 
 
    grunt.registerTask('default', ['uglify']); 
 

 
};

при запуске команды grunt uglify в основном она работает задача определяется по uglify.You может найти больше в их НАЧАТЬ РАБОТУ руководство here

+0

действительно работает только «ворчит» выполняет всю задачу? и где он упоминается для запуска скрипта сервера, скажем, index.js, как упоминалось выше? –

+0

Запуск 'grunt' запускает задание по умолчанию, определенное в 'Gruntfile.js'. Если у вас установлен плагин cssmin Grunt, вы можете называть это самостоятельно с помощью 'grunt cssmin'. Обычно вы определяете свои собственные задачи в файле Grunt, которые вызывают любые плагины, которые необходимо выполнить в указанном порядке. –

+0

Например, когда я создаю новую версию своего сайта Irun 'grunt serve' для его обслуживания и' grunt deploy' для его развертывания. Каждая команда вызывает несколько плагинов Grunt по очереди –

1

Грунт команда выполняется Gruntfile.js, он делает это через узел, однако он передает grunt конфигурации и функции для плагинов, используемых внутри Gruntfile. вот почему вы пишете

module.exports = function(grunt) { 
    // grunt parameter is passed from grunt-cli 
    // which contains grunt functions and utilities 
    // that you can use to configure the tasks etc. 
}); 
Смежные вопросы