Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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
Javascript Grunt Sass错误:找不到要导入的文件或文件不可读_Javascript_Sass_Gruntjs - Fatal编程技术网

Javascript Grunt Sass错误:找不到要导入的文件或文件不可读

Javascript Grunt Sass错误:找不到要导入的文件或文件不可读,javascript,sass,gruntjs,Javascript,Sass,Gruntjs,这在本地工作,但当我咕哝我的ubuntu时,我得到这个sass错误。我已经安装了ruby和sass,还有grunt Running "sass:dist" (sass) task Error: File to import not found or unreadable: /public/libs/bootswatch-scss/cyborg/variables. Load path: /opt/app/soundapp/public/style/sass on l

这在本地工作,但当我咕哝我的ubuntu时,我得到这个sass错误。我已经安装了ruby和sass,还有grunt

Running "sass:dist" (sass) task
Error: File to import not found or unreadable: /public/libs/bootswatch-scss/cyborg/variables.
       Load path: /opt/app/soundapp/public/style/sass
        on line 1 of public/style/sass/style.scss
  Use --trace for backtrace.
File "public/builds/style.css" created.
正如错误显示的那样,我使用grunt来运行我的东西。这是我最喜欢的款式

@import "public/libs/bootswatch-scss/cyborg/variables";
@import "public/libs/bootstrap-sass-official/assets/stylesheets/bootstrap/variables";
@import "public/libs/bootstrap-sass-official/assets/stylesheets/bootstrap";
@import "public/libs/bootswatch-scss/cyborg/bootswatch";
这是我的grunt文件

module.exports = function(grunt){
    jsFiles = [
        'public/libs/underscore/underscore.js',
        'public/libs/jquery/dist/jquery.js',
        'public/libs/jquery-ui/jquery-ui.js',
        'public/libs/jquery-ui/ui/core.js',
        'public/libs/jquery-ui/ui/widget.js',
        'public/libs/angular/angular.js',
        'public/libs/angular-animate/angular-animate.js',
        'public/libs/angular-sanitize/angular-sanitize.js',
        'public/libs/angular-bootstrap/ui-bootstrap-tpls.js',
        'public/libs/angular-ui-router/release/angular-ui-router.js',
        'public/libs/restangular/dist/restangular.js',

        'public/js/services/**/*.js',
        'public/js/filters/**/*.js',
        'public/js/directives/**/*.js'
    ],
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        sass: {
            dist: {
                options: {
                    loadPath: [
                        'public/libs/bootstrap-sass-official/assets/stylesheets/',
                        'public/libs/bootstrap-sass-official/assets/stylesheets/bootstrap/',
                        'public/libs/font-awesome/scss',
                        'public/libs/bootswatch-scss/cyborg/'
                    ],
                    style: 'compressed'
                },
                files: {
                    'public/builds/style.css': 'public/style/sass/style.scss'
                }
            }
        },
        uglify: {
            options: {
                banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
            },
            build: {
                src: 'builds/script.js',
                dest: 'builds/script.min.js'
            }
        },
        watch: {
            css: {
                files: '**/*.scss',
                tasks: ['sass']
            }
        },
        concat: {
            options: {
                separator: ';',
                banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
            },
            dist: {
                src: jsFiles,
                dest: 'public/builds/script.js'
            }
        },
        jshint: {
            all: ['public/js/**/*.js']
        },
        notify_hooks: {
            options: {
                enabled: true,
                max_jshint_notifications: 5
            }
        },
        notify: {
            complete: {
                options: {
                    message: 'Grunt Completed!'
                }
            },
        }
    });
    grunt.loadNpmTasks('grunt-contrib-sass');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-notify');
    grunt.registerTask('default',['jshint', 'sass', 'concat', 'notify:complete']);
}
module.exports=函数(grunt){
jsFiles=[
“public/libs/underline/underline.js”,
'public/libs/jquery/dist/jquery.js',
'public/libs/jqueryui/jqueryui.js',
'public/libs/jquery ui/ui/core.js',
'public/libs/jquery ui/ui/widget.js',
'public/libs/angular/angular.js',
“public/libs/angular animate/angular animate.js”,
“public/libs/angular-sanitize/angular-sanitize.js”,
'public/libs/angular bootstrap/ui bootstrap tpls.js',
'public/libs/angular-ui-router/release/angular-ui-router.js',
'public/libs/restangular/dist/restangular.js',
“public/js/services/***.js”,
'public/js/filters/***.js',
“public/js/directives/***.js”
],
grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
sass:{
地区:{
选项:{
加载路径:[
“public/libs/bootstrap-sass-official/assets/stylesheets/”,
“public/libs/bootstrap-sass-official/assets/stylesheets/bootstrap/”,
“public/libs/font/scss”,
“public/libs/bootswatch-scss/cyborg/”
],
样式:“压缩”
},
档案:{
“public/builds/style.css”:“public/style/sass/style.scss”
}
}
},
丑陋的:{
选项:{
横幅:'/*!*/\n'
},
建造:{
src:'builds/script.js',
dest:'builds/script.min.js'
}
},
观察:{
css:{
文件:'***.scss',
任务:['sass']
}
},
康卡特:{
选项:{
分隔符:';',
横幅:'/*!*/\n'
},
地区:{
src:jsFiles,
dest:'public/builds/script.js'
}
},
jshint:{
全部:['public/js/***.js']
},
通知您:{
选项:{
启用:对,
最大提示通知数:5
}
},
通知:{
完成:{
选项:{
消息:“咕噜声完成!”
}
},
}
});
grunt.loadNpmTasks(“grunt-contrib-sass”);
grunt.loadNpmTasks(“grunt-contrib-watch”);
grunt.loadNpmTasks(“grunt-contrib-concat”);
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks(“grunt-contrib-uglify”);
grunt.loadNpmTasks('grunt-notify');
registerTask('default',['jshint','sass','concat','notify:complete']);
}

我如何开始调试这个?my public/libs/中的所有文件都存在,因此它必须是一个与查找文件无关的编译问题?我已经安装了Sass 3.4.13和ruby 1.9.3p484

此语法似乎来自旧版本,可能仍然不受支持或兼容

sass: {
    dist: {
       options: {
           loadPath: [ ],
           style: 'compressed'
       },
       files: { }
    }
},
但对于grunt contrib sass v0.9.2 如果要将所有sass文件导入到一个主sass文件中。您不必在grunt文件中定义所有SASS导入路径。根据,只需提供
.scss
文件和
.css
文件的路径即可编译,并在主SASS文件中定义导入路径

例如:

在您的style.scss中,假设您的目录结构是

在style.scss文件中会有类似的内容

和您的grunt文件


您是否正在使用此模块的最新版本?你对我的grunt contrib sass版本的评论是正确的。如果你想更新你的答案,我会勾选它。我的版本过时了,更新版本帮我做到了。那么你现在在v0.9.2上吗?答案更新了。。我也留下了其他信息。可能对未来的用户有帮助。
|--- style.scss
|--- public
      |--- libs
         |--- bootswatch-scss

      ...ect
@import "public/libs/bootswatch-scss/cyborg/variables";
@import "public/libs/bootswatch-scss/cyborg/bootswatch";
grunt.initConfig({
  sass: {
    dist: {
      files: {
        'public/builds/style.css': 'public/style/sass/style.scss'
      }
    }
  }
});