Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gruntjs 使用咕哝罗盘拒绝许可_Gruntjs_Compass Sass_Mkdir_Permission Denied - Fatal编程技术网

Gruntjs 使用咕哝罗盘拒绝许可

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

我正在尝试运行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: '<%= 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,
安静:错,
跟踪:对
}
}
},
我假设它失败了,因为它没有创建“样式表”目录的正确权限

这让我在两个方面感到困惑:

  • 我有另一个grunt任务,它成功地在Compass试图放置“样式表”的相同位置创建了一个“images”目录

  • 我在一个游荡的虚拟机上运行这个,所以不确定父文件夹的权限应该是什么

  • 有没有办法解决这个问题


    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
    标志