Opción basada en Browserify (Requerir como JS)

No puedo entender cómobrowserifybasedir opción trabajos..

Nota: Puedo estar equivocado en mi comprensión del todobasedir concepto porque vengo de RequireJS (piensebaseUrl)

EDITAR De hecho, me equivoqué, pero aún puedes lograr lo que estaba tratando de hacer con elpaths opción, vea mi respuesta a continuación.

Entiendo que elbasedir La opción le brinda la capacidad (¡la libertad!) de especificar todas las rutas requeridas (comenzando con un.) desde un directorio raíz / base estático. Y NO desdeprocess.cwd()..

Esto literalmente me está volviendo loco, pensé que tal característica sería tan básica de implementar y que mucha gente se habría encontrado con el mismo problema que yo, pero en realidad hay muy poca información en la web sobre cómo configurar correctamentebasedir opción ... Y confía en mí, esto no es sencillo ...

Así que aquí está el ejemplo BÁSICO que me está volviendo loco.

Dada la siguiente estructura de archivos:

js/
js/app.js
js/src/models/Person.js
js/src/views/PersonView.js

Y corriendo:

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

gulp.task('scripts', function() {

  var b = browserify('./app', {basedir: './js'});

  b.bundle().pipe(gulp.dest('./dist'));
});

Esperaría poder hacer lo siguienterequire() llamarPersonView.js:

var Person = require('./src/models/Person');
...

En lugar de (que obviamente está funcionando ...):

var Person = require('../models/Person');
...

Pero me sale el siguiente error:

Error: module "./src/models/Person" not found from "/Users/...some path.../js/src/views/PersonView.js"

¿Qué me estoy perdiendo de labasedir ¿opción?

Respuestas a la pregunta(1)

Su respuesta a la pregunta