Редактировать: Проверить информацию о версии. grunt-contrib-watch
теперь имеет опору для печенки, запеченная в.
Что такое doozy. Я столкнулся с проблемами с этим, поэтому позвольте мне сделать все возможное, чтобы объяснить (или, по крайней мере, запустить вас). Имейте в виду, что это I У меня есть настройка и, похоже, она работает большую часть времени.
Для начала вам нужно убедиться, что вы обманули свой package.json
с правильными зависимостями. Я не уверен, что работа с печью работает с запеченной в «часах» задаче, и я использую в последнее время grunt-regarde. Мой package.json обычно выглядит следующим образом:
"dependencies": {
"grunt": "~0.4.x",
"grunt-contrib-livereload": "0.1.2",
"grunt-contrib-connect": "0.2.0",
"grunt-regarde": "0.1.1"
},
Obvi вы хотите пехотинец (duhhh), LiveReload, подключение, кажется, помогает с монтажными папками и Regarde, как пехотинец-часы, это только кажется, что лучше работать (я забыть, почему именно).
Вы могли бы сделать ваш package.json
еще лучше, указав функцию перегрузки в своем собственном объекте «devDependencies», если вы так склонны.Теперь запустите свой старый добрый npm install
, чтобы получить лакомства в вашем проекте.
Давайте говорить gruntfiles:
Как вы, наверное, знаете, gruntfile является то, что делает волшебство произойдет. Где-то в нижней части вашего gruntfile, вы хотите, чтобы указать
grunt.loadNpmTasks('grunt-regarde');
grunt.loadNpmTasks('grunt-contrib-livereload');
grunt.loadNpmTasks('grunt-contrib-connect');
В верхней части gruntfile, мы хотим, чтобы добавить некоторые утилиты для LiveReload. Под /*global module:false*/
, добавьте var lrSnippet = require('grunt-contrib-livereload/lib/utils').livereloadSnippet;
.
После этого вам не нужно изучать связь, вы просто должны ее использовать. Проверьте мой стиль:
var folderMount = function folderMount(connect, point) {
return connect.static(path.resolve(point));
};
Это происходит, прежде чем module.exports = function(grunt) {
Теперь давайте перейдем к мясу gruntfile. Опять же, я забываю, что делает соединение, но именно здесь начинается магия промежуточного программного обеспечения. В ваших modules.exports добавьте:
connect: {
livereload: {
options: {
port: 9999,
middleware: function(connect, options) {
return [lrSnippet, folderMount(connect, '.')]
}
}
}
},
Теперь мы хотим, чтобы файлы просматривались. Мне нравится настраивать несколько разных задач, так как я не хочу, чтобы весь процесс рутинга выполнялся каждый раз, когда я сохраняю файл CSS. Вот что я работаю с (опять же, добавить к module.exports
):
regarde: {
txt: {
files: ['styles/*.css', 'index.html'],
tasks: ['livereload']
},
styles: {
files: ['sass/*.scss', 'sass/*/*.scss'],
tasks: ['compass']
},
templates: {
files: ['templates/*.jade'],
tasks: ['jade']
}
},
Вы можете видеть, что я только хотят LiveReload огонь, когда были внесены изменения в моей скомпилированный CSS (*.css
) или к моему скомпилированный HTML. Если я отредактирую файл SCSS, я хочу отключить только компас. Если я редактирую шаблон нефрита, я хочу только запустить jade в компилятор HTML. Я думаю, вы можете видеть, что происходит. Вы можете играть с этим, просто будьте умны, потому что вы можете попасть в бесконечный цикл.
Наконец, вам необходимо устранить эти процессы. Мне нравится привязывать их всех к моей главной задаче grunt, потому что мой файл grunt только , что сладкий.
// Default task.
grunt.registerTask('default', ['livereload-start', 'connect', 'regarde']);
Теперь, когда вы запускаете grunt
в CLI, вы должны (надеюсь, может быть, скрестите пальцы) получить что-то вроде этого:
Running "connect:livereload" (connect) task
Starting connect web server on localhost:9999.
Просмотр в http://localhost:9999/yourpage.html
и смотреть магии случиться.
full gruntfile here.full package.json here.
Очень приятно знать. Я рад видеть, что это было значительно упрощено. – davidtheclark
Я тоже. Хотел бы я знать, что перед моим эпическим ответом! – imjared
Спасибо, вы также можете добавить, что расширение Chrome также работает с этим решением (https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei?hl=ru), поэтому вручную добавление строки сценария затем устарели. – owzim