Як встановити grunt та як створити скрипт з ним


86

Привіт, я намагаюся встановити Grunt у Windows 7 64 bit. Я встановив Grunt за допомогою команд

 npm install -g grunt
 npm install -g grunt-cli

але зараз, якщо я спробую це зробити grunt init, це видає мені помилку -

Не вдалося знайти дійсний файл Grunt. Будь ласка, дивіться посібник із початку роботи, щоб отримати додаткову інформацію про те, як налаштувати grunt: http://gruntjs.com/getting-started Фатальна помилка: Не вдається знайти файл Grunt.

Але коли я заглядаю всередину папки grunt у моїй системі, Gruntfile.jsвона є. може хтось, будь ласка, підкаже мене, як правильно встановити цей grunt та як написати вбудований скрипт, використовуючи grunt. У мене є одна сторінка HTML і сценарій Java, якщо я хочу побудувати сценарій за допомогою Grunt, як я можу це зробити?


1
npm install -g gruntозначає встановлення Grunt глобально, що більше не рекомендується (починаючи з Grunt 0.4).
Люддер

Відповіді:


229

Щоб налаштувати збірку GruntJS, виконайте такі дії:

  1. Переконайтеся, що ви налаштували свій package.jsonабо налаштували новий:

    npm init
    
  2. Встановіть Grunt CLI як глобальний:

    npm install -g grunt-cli
    
  3. Встановіть Grunt у своєму локальному проекті:

    npm install grunt --save-dev
    
  4. Встановіть будь-який модуль Grunt, який вам може знадобитися в процесі складання. Тільки заради цього зразка я додаю модуль Concat для поєднання файлів разом:

    npm install grunt-contrib-concat --save-dev
    
  5. Тепер вам потрібно налаштувати свій, Gruntfile.jsякий описуватиме ваш процес збірки. Для цього зразка я просто поєдную два файли JS file1.jsі file2.jsв jsпапці і генерую app.js:

    module.exports = function(grunt) {
    
        // Project configuration.
        grunt.initConfig({
            concat: {
                "options": { "separator": ";" },
                "build": {
                    "src": ["js/file1.js", "js/file2.js"],
                    "dest": "js/app.js"
                }
            }
        });
    
        // Load required modules
        grunt.loadNpmTasks('grunt-contrib-concat');
    
        // Task definitions
        grunt.registerTask('default', ['concat']);
    };
    
  6. Тепер ви будете готові до запуску процесу збірки, виконавши наступну команду:

    grunt
    

Сподіваюся, це дасть вам уявлення про те, як працювати зі збіркою GruntJS.

ПРИМІТКА:

Ви можете використовувати grunt-initдля створення, Gruntfile.jsякщо ви хочете створити майстер, а не необроблене кодування для кроку 5.

Для цього виконайте такі дії:

npm install -g grunt-init
git clone https://github.com/gruntjs/grunt-init-gruntfile.git ~/.grunt-init/gruntfile
grunt-init gruntfile

Для користувачів Windows: Якщо ви використовуєте cmd.exe, вам потрібно змінити ~/.grunt-init/gruntfileна %USERPROFILE%\.grunt-init\. PowerShell розпізнає ~правильно.


це те, що я шукав, дякую. також, чи потрібно, щоб gruntfile.js був розміщений в кореневій папці проекту (не можу змусити його працювати інакше у Windows)?
chester89

1
Чи може бути крок 5 налаштований в основному за допомогою grunt init:gruntfile? Я намагався зробити це , але я завжди отримую повідомлення про помилку: Fatal error: Unable to find Gruntfile. Чи завжди створення Gruntfile.js є ручним процесом? Якщо так, то я бачу перевагу використання YEOMAN де а Gruntfile.js згенерована автоматично (і це по- як і раніше застосовується для проектів , які я хотів би створити , які не є на самому ділі WebApps.
Михей

@micah, ти можеш використовувати інструмент grunt-init для простого створення Gruntfile. Я оновлю основний пост і додаю його як примітку.
Корбані

@qorbani Тоді я розгублений. У каталозі для цього проекту, що не грунтується, я вже виконав кроки 1-4. Тепер я просто побіг, npm install -g grunt-initі він успішно встановився. Я пішов за цим, grunt init:gruntfileі це все ще призводить до тієї ж фатальної помилки. Чого мені не вистачає?
micah

grunt init: gruntfile неправильний. grunt-init - це інший помічник для риштування на основі шаблонів, і вам потрібно встановити шаблон gruntfile, щоб він міг генерувати Gruntfile.js
Qorbani

8

Деякий час нам потрібно встановити змінну PATH для WINDOWS

% USERPROFILE% \ AppData \ Roaming \ npm

Після цього тесту з where grunt

Примітка: Не забудьте закрити вікно командного рядка та відкрити його знову.


5

Я отримав ту саму проблему, але вирішив її, змінивши Grunt.js на Gruntfile.js Перевірте ім'я файлу, перш ніж набирати grunt.cmd на windows cmd (якщо ви використовуєте Windows).


2

Вам слід встановити grunt-cli на devDependencies проекту, а потім запустити його за допомогою скрипта у файлі package.json. Таким чином, інші розробники, які працюють над проектом, будуть використовувати ту саму версію grunt, і їм також не доведеться встановлювати глобально як частину налаштування.

Встановіть grunt-cli з npm i -D grunt-cliзамість того, щоб встановлювати його глобально за допомогою -g.

//package.json

...

"scripts": {
  "build": "grunt"
}

Потім використовуйте, npm run buildщоб вистрілити бурчання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.