2015-06-12 15 views
49

Tôi đang cố gắng sử dụng gulp và browserify để chuyển đổi các tệp .jsx của mình thành .js tệp.Tại sao tôi phải sử dụng nguồn vinyl-nguồn với gulp?

var gulp = require('gulp'); 
var browserify = require('browserify'); 
var reactify = require('reactify'); 

gulp.task('js', function() { 
    browserify('public/javascripts/src/app.jsx') 
    .transform(reactify) 
    .bundle() 
    .pipe(gulp.dest('public/javascripts/dist')) 
}); 

`` `

Trên đây ném Arguments to path.resolve must be strings. Tôi đã xoay xở để giải quyết vấn đề này bằng cách sử dụng vinyl-source-stream

var source = require('vinyl-source-stream'); 
... 
.bundle() 
.source('app.js') 
... 

Tại sao tính năng này hoạt động? Tôi khá mới với nodejs và gulp. Sau khi đọc README của dự án và mã nguồn, tôi vẫn còn bối rối. Bất kỳ giúp đỡ?

Trả lời

78

Tôi nghĩ rằng đọc bài viết này gulp The vision, history, and future of the project có thể giúp bạn làm rõ một vài khái niệm.

Về cơ bản bạn có thể nói rằng vinyl nguồn dòng chuyển đổi readable stream you get from browserify vào một dòng vinyl đó là những gì ngụm được mong đợi để có được.

Một dòng vinyl là một định dạng tập tin ảo, và nó là nền tảng cho Gulp. Nhờ các luồng vinyl này Gulp không cần phải viết một tệp thời gian giữa các phép biến đổi khác nhau. Và đây là một trong những lợi thế chính của nó có hơn Grunt.

3

Mô-đun này chỉ là một cây cầu giúp việc sử dụng các luồng văn bản thông thường như vậy kết hợp với gulp một cách đơn giản.

Các vấn đề liên quan