我正在创建一个小的Flask应用程序,并且正在使用Gruntjs进行监视,连接和sass任务。当我运行“ Grunt”命令时,它将引发错误:“致命错误:生成EACCES”并停止观看。
我已尝试按照上一个问题中的建议将单个livereload选项添加到watch任务:Grunt Watch Fatal错误:监听EACCES和livereload,但这不能解决问题。
是什么导致此错误?
咕unt声日志:
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
我能够通过对run.sh文件启用用户可执行权限来解决此问题。
chmod u=rwx run.sh
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句