Grunt Watch Fatal error: прослушайте EACCES и перезагрузите

Технические характеристики ПК: Windows 7 Enterprise x64

Я запускаю grunt.js в проекте и недавно начал получать ошибку при попытке запустить «grunt watch».

Вчера Grunt работал нормально, но сегодня я начал видеть:

Выполняется задача "смотреть" Ожидание ... Неустранимая ошибка: прослушать EACCES

Я прочитал здесь еще один вопрос: Cloud 9 и Grunt.js

которые заставили меня удалить 'options: {livereload: true}' из Gruntfile.js

беговые часы снова работают по назначению. Есть ли способ перенастроить grunt или livereload, чтобы livereload снова работал с Grunt?

Кроме того, простое выполнение команды grunt запускает все задачи без ошибок.

Спасибо.

Изменить: Gruntfile.js следует:

module.exports = function(grunt) {
    grunt.initConfig({
        jshint: {
            all: ['js/src/*.js']
        },
        uglify: {
            options: {
                mangle: {
                    except: ['jQuery']
                },
                preserveComments: 'none'
            },
            'js/main.min.js': ['js/tmp/debug.js']
        },
        compass: {
            options: {
                config: '.compass.rb',
                sassDir: 'sass',
                cssDir: '.'
            },
            my_target: {
            }
        },
        cmq: {
            my_target: {
                files: { 'tmp': ['style.css'] }
            }
        },
        cssmin: {
            minify: {
                keepSpecialComments: 0,
                expand: true,
                cwd: 'tmp/',
                src: ['style.css'],
                dest: '.',
                ext: '.css'
            }
        },
        imagemin: {
            png: {
                options: {
                    optimizationLevel: 7
                },
                files: [{
                    expand: true,
                    cwd: 'img',
                    src: ['**/*.png'],
                    dest: 'img',
                    ext: '.min.png'
                }]
            },
            jpg: {
                options: {
                    progressive: true
                },
                files: [{
                    expand: true,
                    cwd: 'img',
                    src: ['**/*.jpg'],
                    dest: 'img',
                    ext: '.min.jpg'
                }]
            },
            gif: {
                options: {
                    progressive: true
                },
                files: [{
                    expand: true,
                    cwd: 'img',
                    src: ['**/*.gif'],
                    dest: 'img',
                    ext: '.min.gif'
                }]
            }
        },
        clean: ["tmp"],
        watch: {
            scripts: {
                files: 'js/src/*.js',
                tasks: ['jshint', 'concat', 'uglify', 'clean'],
                options: { livereload: true }
            },
            css: {
                files: 'sass/*.scss',
                tasks: ['compass', 'cmq', 'cssmin', 'clean'],
                options: { livereload: true }
            }
        },
            concat: {
            debug: {
                src: ['js/src/**/*.js'],
                dest: 'js/tmp/debug.js'
            }
        },
    });

    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-compass');
    grunt.loadNpmTasks('grunt-combine-media-queries');
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-contrib-imagemin');

    grunt.registerTask('default', ['jshint', 'concat', 'uglify', 'compass', 'cmq', 'cssmin', 'clean']);
}

person Sean    schedule 26.03.2014    source источник
comment
Какая версия grunt и какая версия grunt-contrib-watch?   -  person Mathletics    schedule 27.03.2014
comment
ворчание: ~ 0.4.2 ворчание-вклад-часы: ~ 0.5.3   -  person Sean    schedule 27.03.2014
comment
Вы можете опубликовать свой Gruntfile?   -  person Mathletics    schedule 27.03.2014
comment
Конечно, я исправлю OP   -  person Sean    schedule 27.03.2014


Ответы (3)


Похоже, у вас есть 2 сервера живой перезагрузки, настроенные для создания на одном и том же порту по умолчанию. Вместо того, чтобы указывать livereload: true дважды в конфигурации часов, просто настройте его один раз:

watch: {
    options: { livereload: true },
    scripts: {
        files: 'js/src/*.js',
        tasks: ['jshint', 'concat', 'uglify', 'clean'],
    },
    css: {
        files: 'sass/*.scss',
        tasks: ['compass', 'cmq', 'cssmin', 'clean'],
    },
},

Тогда будет запущен только 1 сервер живой перезагрузки.

Другой вариант - создать цель для просмотра специально для перезагрузки в реальном времени и просмотра файлов назначения:

watch: {
    scripts: {
        files: 'js/src/*.js',
        tasks: ['jshint', 'concat', 'uglify', 'clean'],
    },
    css: {
        files: 'sass/*.scss',
        tasks: ['compass', 'cmq', 'cssmin', 'clean'],
    },
    lr: {
        options: { livereload: true },
        files: ['js/*.js', 'css/*.css'],
    },
},
person Kyle Robinson Young    schedule 27.03.2014
comment
Спасибо, но не решил проблему. та же ошибка. Неустранимая ошибка: слушайте EACCES - person Sean; 28.03.2014
comment
ничего. это исправило это. входящий неохотный самоуничижительный ответ. - person Sean; 28.03.2014

В моем нескончаемом блеске у меня было приложение fireapp, работающее над отдельным проектом. fireapp имеет возможность включить livereload.

Изначально, когда я задал вопрос, это было потому, что у меня было два вызова в Gruntfile.js, как правильно предположил Кайл. Это решение не сработало для меня, потому что у меня все еще были две отдельные версии livereload, работающие с fireapp, просматривающим отдельный проект.

Второй вариант Кайла сработал.

Спасибо!

person Sean    schedule 27.03.2014

У вас нет разрешения на внесение некоторых изменений.

  1. Перейти в папку проекта.
  2. Откройте терминал в папке проекта и выполните следующую команду.

    sudo chmod -R a+rwx ./
    
person pvrforpranavvr    schedule 03.01.2018