npm和gulp - 如何在gulp中正确处理使用npm安装的模块

3

我目前正在设置我的前端环境,但无法弄清如何将Node模块与Gulp正确结合使用。起初我考虑使用Bower,但由于Bower博客上甚至推荐使用Yarn,我改变了主意。因为Node.js已经在我的项目中使用,所以我遇到了这个问题。

如果我现在想要安装Bootstrap 4,我的代码段可能会是这样的:

var gulp        = require('gulp');
var browserSync = require('browser-sync').create();
var sass        = require('gulp-sass');

// Compile sass into CSS & auto-inject into browsers
gulp.task('sass', function() {
    return gulp.src(['node_modules/bootstrap/scss/bootstrap.scss', 'src/scss/*.scss'])
        .pipe(sass())
        .pipe(gulp.dest("src/css"))
        .pipe(browserSync.stream());
});

// Move the javascript files into our /src/js folder
gulp.task('js', function() {
    return gulp.src(['node_modules/bootstrap/dist/js/bootstrap.min.js', 'node_modules/jquery/dist/jquery.min.js', 'node_modules/tether/dist/js/tether.min.js'])
        .pipe(gulp.dest("src/js"))
        .pipe(browserSync.stream());
});

我对这段代码的问题在于我需要检查每个安装的模块所需文件的路径,并在多个位置更改gulpfile。因此,我的问题是,是否有更好/更容易的工作流程来解决这个问题。
1个回答

4

不要包含完整路径,尝试像下面一样给出文件的绝对路径;这样,您无需为每个新文件更改gulp:

gulp.task('sass', function() {
  return gulp.src(
    ['node_modules/**/*.scss'],
    ['node_modules/**/*/.css'],
    {base:'node_modules'}
  )
  .pipe(sass())
  .pipe(gulp.dest("src/css"))
  .pipe(browserSync.stream());
});

gulp.task('js', function() {
  return gulp.src(
    ['node_modules/**/*.js'],
    ['node_modules/**/*/.min.js'],
    {base:'node_modules'}
  )
  .pipe(gulp.dest("src/js"))
  .pipe(browserSync.stream());
});


1
在这种方式下使用它的性能是否存在缺陷(包括整个.scss、.css或.js文件)? - fatihturan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接