Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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 gulp compass创建一个不需要的文件,而不是仅使用流_Javascript_Node.js_Gulp - Fatal编程技术网

Javascript gulp compass创建一个不需要的文件,而不是仅使用流

Javascript gulp compass创建一个不需要的文件,而不是仅使用流,javascript,node.js,gulp,Javascript,Node.js,Gulp,这是我的应用程序compass gulp任务: var compass = require('gulp-compass'); var autoprefixer = require('gulp-autoprefixer'); gulp.task('app-compass', function() { var stream = gulp.src('./app/styles/index.scss') .pipe(compass({ css: paths

这是我的应用程序compass gulp任务:

var compass = require('gulp-compass');
var autoprefixer = require('gulp-autoprefixer');

gulp.task('app-compass', function() {
    var stream = gulp.src('./app/styles/index.scss')
        .pipe(compass({
            css: paths.css,
            sass: 'app/styles',
            image: 'app/assets/images',
            generated_images_path: paths.images
        }))
        .pipe(autoprefixer())
        .pipe(gulp.dest(paths.css));
});
作为compass的一部分,创建了index.css文件。这是一个不需要的操作。我只想要流中的数据,而不想将其写入文件。明天我可能会更改目的地,例如,我还必须更改compass的
css
属性。

有没有一种方法可以告诉compass不要创建css文件,而只通过流传递它?

删除compass配置中的
css:path.css,
。否则compass认为应该直接生成css

var compass = require('gulp-compass');
var autoprefixer = require('gulp-autoprefixer');

gulp.task('app-compass', function() {
    var stream = gulp.src('./app/styles/index.scss')
        .pipe(compass({

            sass: 'app/styles',
            image: 'app/assets/images',
            generated_images_path: paths.images
        }))
        .pipe(autoprefixer())
        .pipe(gulp.dest(paths.css));
});
编辑:

我只是再次运行它,实际上,它在根目录中创建了css目录。我只检查了应用程序/css…抱歉,文档中似乎说ruby compass不可能以这种方式工作:

请确保在中添加具有相同值的css和sass选项 config.rb,因为compass无法直接输出css结果

var compass = require('gulp-compass');
var autoprefixer = require('gulp-autoprefixer');

gulp.task('app-compass', function() {
    var stream = gulp.src('./app/styles/index.scss')
        .pipe(compass({

            sass: 'app/styles',
            image: 'app/assets/images',
            generated_images_path: paths.images
        }))
        .pipe(autoprefixer())
        .pipe(gulp.dest(paths.css));
});

不幸的是,我目前没有看到一个好的解决方案。幸运的是,额外的文件生成不会影响性能

或者您可以看看Bourbon,它与Compass非常相似,更好地集成到节点环境中(因为它只是混音器,没有自己的特殊编译器):


您是否尝试过以下方法

var compass = require('gulp-compass');
var autoprefixer = require('gulp-autoprefixer');
var clean = require('gulp-clean');

gulp.task('app-compass', function() {
    var stream = gulp.src('./app/styles/index.scss')
        .pipe(compass({
            css: paths.css,
            sass: 'app/styles',
            image: 'app/assets/images',
            generated_images_path: paths.images
        }))
        .pipe(autoprefixer())
        .pipe(clean())
        .pipe(gulp.dest(paths.css));
});

看起来
compass
gulp.dest
都在创建
.css
文件。尝试删除
.pipe(gulp.dest(path.css))
并确保
compass
配置对象的
css
属性指向所需的目标位置

从原始海报更新代码
什么是“指南针”?请添加npm所需的所有信息。(我猜是大口指南针)@SteveLacy加上了它。它不起作用。css选项的默认值为“/css”。您在任何地方都有其他设置吗?或者你使用的是旧版的gulp指南针?因为我在一个测试系统中试过了,它成功了。我没有其他设置。这是我开始的一个新项目。。。您可以发布您的示例吗?在您修复的代码中,我认为gulp.dest(path.css)覆盖了compass的文件。我不认为clean在这里有什么帮助。@Naor它会删除不需要的文件吗?我有一个类似的问题,gulp制作了两个文件夹和文件。我将css属性添加到对象中,并删除了.pipe(gulp.dest())方法,它对我有效。谢谢