Gruntjs 使用咕哝罗盘拒绝许可
我正在尝试运行Grunt Compass任务,但始终失败: 错误号::的第[“250”]行上的EACCES /opt/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:权限被拒绝 @dir\u s\u mkdir-/stylesheets 我的任务是:Gruntjs 使用咕哝罗盘拒绝许可,gruntjs,compass-sass,mkdir,permission-denied,Gruntjs,Compass Sass,Mkdir,Permission Denied,我正在尝试运行Grunt Compass任务,但始终失败: 错误号::的第[“250”]行上的EACCES /opt/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:权限被拒绝 @dir\u s\u mkdir-/stylesheets 我的任务是: compass: { dev: { options: { require: ['susy', 'breakpoint'], sassDir: '<%= p
compass: {
dev: {
options: {
require: ['susy', 'breakpoint'],
sassDir: '<%= paths.srcAssets %>/stylesheets',
cssDir: '<%= paths.build %>/stylesheets',
generatedImagesDir: '<%= paths.build %>/images',
imagesDir: '<%= paths.srcAssets %>/images',
javascriptsDir: '<%= paths.srcAssets %>/javascripts',
fontsDir: '<%= paths.srcAssets %>/fonts',
// importPath: ['<%= paths.vendor %>/components'],
httpImagesPath: '/assets/images',
httpGeneratedImagesPath: '/assets/images',
httpFontsPath: '/assets/fonts',
sourcemap: true,
relativeAssets: false,
noLineComments: true,
outputStyle: 'compressed',
raw: 'preferred_syntax = :sass\n',
environment: 'development',
bundleExec: true,
app: 'stand_alone',
debugInfo: true,
quiet: false,
trace: true
}
}
},
指南针:{
开发人员:{
选项:{
require:['susy','breakpoint'],
sassDir:“/stylesheets”,
cssDir:“/stylesheets”,
generatedImagesDir:“/images”,
imagesDir:“/images”,
javascriptsDir:“/javascripts”,
fontsDir:“/fonts”,
//导入路径:['/components'],
httpImagesPath:“/assets/images”,
httpGeneratedImagesPath:“/assets/images”,
httpFontsPath:“/assets/fonts”,
sourcemap:true,
相对论:错,
诺林评论:没错,
outputStyle:'压缩',
raw:“首选语法=:sass\n”,
环境:"发展",,
bundleExec:是的,
应用程序:“独立”,
debugInfo:true,
安静:错,
跟踪:对
}
}
},
我假设它失败了,因为它没有创建“样式表”目录的正确权限
这让我在两个方面感到困惑:
Neil问题是compass试图在系统的
/
中创建样式表
目录,这显然是被禁止的
此问题是由您在cssDir
和imageDir
选项的compass
任务中引用的路径引起的:
cssDir: '<%= paths.build %>/stylesheets'
cssDir:“/stylesheets”
在路径
配置对象中,没有构建
属性,但肯定有构建资产
属性,因此
将替换为null并解释错误
因此,只要替换这些事件,您就可以开始了。如果您仍在处理此问题,我有几个问题:-您是以交互方式处理它,还是这是自动CI流的一部分?-您是否尝试手动创建“样式表”文件夹,至少检查这是否是唯一的问题grunt是否在运行compass任务之前成功写出其他文件并创建其他文件夹?谢谢回复。我以为没人会帮忙。非常感谢。我以互动方式工作。我已经尝试制作文件夹,但仍然失败。我将很快测试您的最后一点,并很快回复您。@JamesWing您是对的,尝试使用复制任务复制文件,但在尝试创建“图像”目录时失败。有什么想法吗?这确实表明存在一般权限问题。你对虚拟机有管理员权限吗?我也不确定权限应该是什么,我建议从Gruntfile对输出文件夹进行有限的更改开始。类似于
chmod-v-v-ru+wOutputFolderName
的东西将递归地授予您写权限,并列出修改的文件。好的,我将尝试一下。在此之前,如果我通过VM更改权限,这是否也会在本地计算机上更改权限?这也让我感到困惑。不要这样称呼你,我们都会犯错误:)当我运行grunt样式表时
我现在得到:grunt样式表运行“clean:all”(clean)task>>0个路径被清理。正在运行“复制:图像”(复制)任务警告:无法创建目录“/vagrant/rails/public/assets”(错误代码:EEXIST)。使用--force继续。我已经在以下位置更新了我的GrunFile:Any ideas?你可以在清理时使用清理任务的force
选项删除文件夹,或者使用compass选项覆盖文件。你现在可以检查一下要点,因为我在使用--force时添加了控制台输出。我很困惑为什么这一切都出了问题。我在运行grunt之前进行了检查,设置为buildAssets的assets目录完全为空。要点是:谢谢您应该将指南针的力选项设置为true,而不使用--force
标志