【问题标题】:"Fatal error: spawn EACCES" Running "sass:dist" task“致命错误:产生 EACCES” 运行“sass:dist”任务
【发布时间】:2014-06-17 09:52:06
【问题描述】:

我正在创建一个小型 Flask 应用程序,并且正在使用 Gruntjs 执行 watch、concat 和 sass 任务。当我运行“Grunt”命令时,它会抛出一个错误:“Fatal error: spawn EACCES”并停止观看。

我已尝试按照上一个问题中的建议向监视任务添加一个 livereload 选项:Grunt Watch Fatal error: listen EACCES and livereload,但这并没有解决问题。

什么可能导致这个错误?

咕噜日志:

Running "flaskServer" task
Starting the Flask server on port 5000

Running "concat:dist" (concat) task
File "./static/js/app.js" created.

Running "sass:dist" (sass) task
Fatal error: spawn EACCES

Gruntfile.js:

module.exports = function(grunt) {
  require('load-grunt-tasks')(grunt);
  grunt.initConfig({
    concat: {
      options: {
        separator: "\n",
      },
      dist: {
        src: ['assets/**/*.js'],
        dest: './static/js/app.js'
      },
    },
    sass: {
      dist: {
        options: {
          style: 'expanded'
        },
        files: [{
          expand: true,
          cwd: 'assets',
          src: ['*.scss','!_*.scss'],
          dest: './static/css',
          ext: '.css'
        }]
      }
    },
    watch: {
      javascripts: {
        options: {
          livereload: true
        },
        files: ['assets/js/*.js'],
        tasks: ['concat']
      },
      styles: {
        options: {
          livereload: true
        },
        files: ['assets/**.scss'],
        tasks: ['sass']
      },
      templates: {
        options: {
          livereload: true
        },
        files: ['templates/**/*.html'],
        tasks: [] // empty for livereload
      }
    }
  });

  grunt.registerTask('flaskServer', 'runs the flask server', function() {
    grunt.log.writeln('Starting the Flask server on port 5000');
    var spawn = require('child_process').spawn;
    var server = spawn('./run.sh');
    server.stdout.on('data', function(data) {
      grunt.log.writeln('FLASK LOG: ' + data);
    });
    process.on('exit', function() {
      server.kill();
    });
  });

  grunt.registerTask('dev', [
    'concat',
    'sass',
    'watch'
  ]);

  grunt.registerTask('server', [
    'flaskServer'
  ]);

  grunt.registerTask('default', [
    'server',
    'dev'
  ]);
};

文件结构:

/assets
  /js
    app.js
  _normalize.scss
  app.scss
/node_modules
  /grunt
  /grunt-contrib-concat
  /grunt-contrib-copy
  /grunt-contrib-sass
  /grunt-congrib-watch
  /load-grunt-tasks
/static
  /css
    app.css
  /js
    app.js
/templates
  /layouts
    base.html
  /pages
  404.html
  index.html
app.py
Gruntfile.js
package.json
run.sh

【问题讨论】:

    标签: flask gruntjs


    【解决方案1】:

    我能够通过对 run.sh 文件启用用户可执行权限来解决此问题。

    chmod u=rwx run.sh
    

    【讨论】:

      【解决方案2】:

      使用 sudo 执行 grunt 命令,即 sudo grunt

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-30
        • 2016-10-23
        • 1970-01-01
        • 1970-01-01
        • 2022-07-18
        • 1970-01-01
        • 1970-01-01
        • 2018-03-15
        相关资源
        最近更新 更多