如何使用gulp正确维护目录结构?

时间:2018-05-23 19:06:51

标签: javascript gulp

我需要把我的所有样式(css,scss,less)都放到css中然后缩小成一个文件,在dist / test /中的index.min.css。但是,我不想硬编码dist / test - 我希望文件名是动态的(并不总是测试),这样人们就可以根据需要命名他们的项目文件。

我的文件结构如下:

  

dev /

     
    

测试/

         
      

的index.html
      index.js
      index.css
      index.scss
      index.less

    
  
     

DIST /

     
    

测试/

         
      

的index.html
      index.min.js

    
  

以下是我的代码的相关摘要:

var config = {
    src: "./dev/**/", //src location
    build: "./dist/" //dist location
};

gulp.task('styles', function() {

    var lessStream = gulp.src(config.src + "*.less")
        .pipe(less())
        .pipe(concat('less-files.less'));

    var scssStream = gulp.src(config.src + "*.{sass,scss}")
        .pipe(sass())
        .pipe(concat('scss-files.scss'));

    var cssStream = gulp.src(config.src + "*.css")
        .pipe(concat('css-files.css'));

    var mergedStream = merge(lessStream, scssStream, cssStream)
        .pipe(concat('index.css'))
        .pipe(minify())
        .pipe(gulp.dest(config.build))
        .pipe(browsersync.reload({
            stream: true
        }));

    return mergedStream

});

此代码正确组合并缩小,但位置不正确 - 它最终以dist /而不是dist / test结束,我希望它最终结束。

1 个答案:

答案 0 :(得分:0)

...

var minimist = require('minimist');

var knownOptions = {
  string: 'folder',
  default: { folder: 'test' }
};

var options = minimist(process.argv.slice(2), knownOptions);

var config = {
    src: "./dev/**/",                  // src location
    build: "./dist/" + options.folder  // dist location
};
...

然后你可以打电话给你的任务

gulp styles --folder courtney

基于官方文档中pass arguments from the command line的示例