Estoy tratando de usar gulp y browserify para transformar mis archivos .jsx en archivos .js .
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')) });```
Lo anterior arrojó Arguments to path.resolve must be strings . Me las arreglé para solucionarlo usando vinyl-source-stream
var source = require('vinyl-source-stream'); ... .bundle() .source('app.js') ...¿Por qué funciona esto? Soy bastante nuevo en nodejs y gulp. Después de leer el LÉAME del proyecto y el código fuente, todavía estoy confundido. ¿Alguna ayuda?
Creo que leer este artículo gulp La visión, historia y futuro del proyecto puede ayudarte a aclarar algunos conceptos.
Básicamente, puede decir que vinyl-source-stream convierte el flujo legible que obtiene de browserify en un flujo de vinilo que es lo que Gulp espera obtener.
Un stream de vinilo es un formato de archivo virtual , y es fundamental para Gulp . Gracias a este vinilo, Gulp no necesita escribir un archivo temporal entre diferentes transformaciones. Y esta es una de las principales ventajas que tiene sobre Grunt .
Este módulo es solo un puente que simplifica el uso de flujos de texto convencionales como este en combinación con gulp.