使用Grunt Compass拒绝许可

时间:2014-10-18 19:15:00

标签: gruntjs compass-sass mkdir permission-denied

我正在尝试运行Grunt Compass任务并且它一直在失败:

  

Errno :: EACCES on the line [" 250"] of   /opt/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:权限被拒绝   @ dir_s_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
    }
  }
},

我认为它失败了,因为它没有正确的权限来创建样式表&#39; 。目录

这让我有两种困惑:

  1. 我还有另一个成功创建图像的艰巨任务。 Compass尝试放置&#39;样式表&#39;的目录位于同一位置。之一。

  2. 我在Vagrant虚拟机中运行它,因此不确定父文件夹的权限应该是什么。

  3. 关于如何解决它的任何想法?

    尼尔

1 个答案:

答案 0 :(得分:3)

问题是罗盘试图在你系统的stylesheets创建/目录,这显然是被禁止的。

此问题是由您在compasscssDir选项的imageDir任务中引用的路径引起的:

cssDir: '<%= paths.build %>/stylesheets'

paths配置对象中,没有build属性,但肯定是buildAssets属性,因此<%= paths.build %>将替换为null并解释您的错误。

所以,只需更换出现的东西就可以了。