Javascript 将文件压缩到dest文件夹和src文件夹

Javascript 将文件压缩到dest文件夹和src文件夹,javascript,gulp,gulp-watch,gulp-sass,Javascript,Gulp,Gulp Watch,Gulp Sass,我的gulpfile正在将编译好的css和js文件添加到dest(css/js)文件夹和src(scss/coffee)文件夹中 理想的结果是编译后的文件仅打印到dest文件夹中 只有在Windows而不是Mac上运行gulp时才会发生这种情况。此外,如果我在不使用手表的情况下运行任务,它会正确编译;'“gulp styles”仅将css文件编译到css文件夹-“gulp scripts”仅将js文件编译到js文件夹 var gulp = require('gulp'), plumber

我的gulpfile正在将编译好的css和js文件添加到dest(css/js)文件夹和src(scss/coffee)文件夹中

理想的结果是编译后的文件仅打印到dest文件夹中

只有在Windows而不是Mac上运行gulp时才会发生这种情况。此外,如果我在不使用手表的情况下运行任务,它会正确编译;'“gulp styles”仅将css文件编译到css文件夹-“gulp scripts”仅将js文件编译到js文件夹

var gulp = require('gulp'),
    plumber = require('gulp-plumber'),
    rename = require('gulp-rename'),
    autoprefixer = require('gulp-autoprefixer'),
    coffee = require('gulp-coffee'),
    jshint = require('gulp-jshint'),
    uglify = require('gulp-uglify'),
    minifycss = require('gulp-minify-css'),
    sass = require('gulp-sass');

gulp.task('styles', function () {
    return gulp.src(['scss/**/*.scss'])
        .pipe(plumber({
            errorHandler: function (error) {
                console.log(error.message);
                this.emit('end');
            }
        }))
        .pipe(sass())
        .pipe(autoprefixer('last 2 versions'))
        .pipe(gulp.dest('css/'))
        .pipe(rename({ suffix: '.min' }))
        .pipe(minifycss())
        .pipe(gulp.dest('css/'))
});

gulp.task('scripts', function () {
    return gulp.src('coffee/**/*.coffee')
        .pipe(plumber({
            errorHandler: function (error) {
                console.log(error.message);
                this.emit('end');
            }
        }))
        .pipe(coffee({ bare: true }))
        .pipe(jshint())
        .pipe(jshint.reporter('default'))
        .pipe(gulp.dest('js/'))
        .pipe(rename({ suffix: '.min' }))
        .pipe(uglify())
        .pipe(gulp.dest('js/'))
});

gulp.task('default', function () {
    gulp.watch("scss/**/*.scss", ['styles']);
    gulp.watch("coffee/**/*.coffee", ['scripts']);
});

这是因为您在缩小之前和缩小之后分别调用了两次
gulp.dest
。调用dest会在提供的路径上将文件写入磁盘

如果你只是想要缩小版本

用于Css

.pipe(autoprefixer('last 2 versions'))
      .pipe(rename({ suffix: '.min' }))
      .pipe(minifycss())
      .pipe(gulp.dest('css/'))
pipe(jshint.reporter('default'))
      .pipe(rename({ suffix: '.min' }))
      .pipe(uglify())
      .pipe(gulp.dest('js/'))
适用于Js

.pipe(autoprefixer('last 2 versions'))
      .pipe(rename({ suffix: '.min' }))
      .pipe(minifycss())
      .pipe(gulp.dest('css/'))
pipe(jshint.reporter('default'))
      .pipe(rename({ suffix: '.min' }))
      .pipe(uglify())
      .pipe(gulp.dest('js/'))

您可以尝试向目标路径添加
,以帮助保留源路径:

.pipe(gulp.dest('css/')) -> .pipe(gulp.dest('./css/'))


在本地,我试图在windows上复制此问题,但未能成功。我的
node\u modules
目录与
coffee
scss
文件夹位于同一目录中。您当前使用的Windows、npm和gulp版本是什么?另外,您是否可能使用gulp的全局版本?Windows 7-node(5.6.0)和npm(3.6.0)的最新版本-node_模块/coffee/scss折叠应该都在同一目录中,您是正确的。Gulp是在全球范围内安装的,因为如果您想运行Gulp,这是必要的-使用该版本意味着什么?(全局和项目级gulp是同一版本)。如果全局安装gulp(
npm install-g gulp
,安装到
/Users//AppData/Roaming/npm/node_modules
),则运行的版本可能与本地运行gulp不同(
/node_modules
)。只是想找出与mac版本相比可能存在的版本差异。我理解你的意思,这就是我的意思,它们都是gulp(3.9.1)的同一版本。这并没有解决问题-它现在只是将单个文件复制到两个文件夹。您的dest文件夹路径是什么,您想将文件放在哪里?css/和js/.pipe(gulp.dest('js/')仍然不会影响在src路径中创建的版本。