【问题标题】:npm and gulp - how to process modules installed with npm in gulp correctlynpm 和 gulp - 如何在 gulp 中正确处理使用 npm 安装的模块
【发布时间】:2018-09-02 15:45:35
【问题描述】:

我目前正在设置我的前端环境,但不知道如何组合节点模块以正确使用 gulp。最初我考虑使用 bower,但由于 bower 博客上甚至有使用 yarn 的推荐,我改变了主意。而且因为nodejs已经在我的项目中使用了,所以就来了这个问题。

如果我现在想安装 Bootstrap 4,我的 sn-p 可能如下所示:

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());
});

我对这个 sn-p 的问题是我必须检查我安装的每个模块所需文件的路径,并在多个位置更改 gulpfile。所以我的问题是,对于这个问题是否有更好/更简单的工作流程。

【问题讨论】:

    标签: node.js npm gulp frontend


    【解决方案1】:

    尝试给出文件的绝对路径,而不是包含完整路径,如下所示;这样,您无需为添加的每个新文件对 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());
    });
    
    

    【讨论】:

    • 以这种方式使用(包括整个 .scss、.css 或 .js 文件)的性能是否存在缺陷?
    猜你喜欢
    • 1970-01-01
    • 2021-02-14
    • 2017-10-10
    • 2020-06-07
    • 2019-05-31
    • 1970-01-01
    • 2017-11-02
    • 2019-03-03
    • 1970-01-01
    相关资源
    最近更新 更多