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

时间:2018-03-23 21:33:52

标签: node.js npm gulp frontend

我目前正在设置我的前端环境,无法弄清楚如何组合节点模块以正确使用gulp。最初我想过使用凉亭,但由于凉亭博客上甚至有建议使用纱线我改变了主意。因为nodejs已经在我的项目中使用,所以我提出了这个问题。

如果我现在想要安装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 个答案:

答案 0 :(得分:1)

Instead of mentioning the full path , try giving the absolute path of the files as highlighted below , this way you need not make any change to gulp for every new file you add .. 
    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());
    });