【发布时间】:2014-12-14 03:09:14
【问题描述】:
我正在尝试运行 Grunt Compass 任务,但一直失败:
Errno::EACCES 在第 ["250"] 行 /opt/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:权限被拒绝 @dir_s_mkdir - /样式表
我的任务是:
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
}
}
},
我假设它失败了,因为它没有创建“样式表”目录的正确权限。
这在两个方面让我感到困惑:
我有另一个繁重的任务,它成功地在 Compass 尝试放置“样式表”的位置创建了一个“图像”目录。
我在 Vagrant 虚拟机中运行它,所以不确定父文件夹的权限应该是什么。
关于如何解决它的任何想法?
尼尔
【问题讨论】:
-
如果您仍在处理此问题,我有几个问题: - 您是否以交互方式使用它,或者这是自动化 CI 流程的一部分? - 您是否尝试过手动创建“样式表”文件夹,至少检查这是否是唯一的问题? - grunt 是否在运行 compass 任务之前成功写出其他文件并创建其他文件夹?
-
感谢您的回复。以为没人会帮忙。非常感谢。我正在交互工作。我尝试制作文件夹,但仍然失败。我会尽快测试您的最后一点并尽快回复您。
-
@JamesWing 你说得对,尝试使用复制任务复制文件,但在尝试创建“图像”目录时失败。有什么想法吗?
-
它确实表明存在一般权限问题。您对 VM 有管理员权限吗?我也不确定权限应该是什么,我建议从 Gruntfile 中的输出文件夹 开始进行有限的更改。像
chmod -v -v -R u+w outputFolderName这样的东西会递归地给你写权限,并列出修改过的文件。 -
好的,我试试看。不过,在我这样做之前,如果我通过 VM 更改权限,这是否也在我的本地计算机上更改它们?这也让我很困惑。
标签: gruntjs compass-sass mkdir permission-denied