Как исправить относительный путь при использовании browserify
Я пытаюсь использовать browserify для компиляции всех файлов js.
Проблема, с которой я сейчас сталкиваюсь: https://github.com/amsul/pickadate.js
В: https://github.com/amsul/pickadate.js/blob/master/lib/picker.date.js
Требуется относительный путь:
require('./picker.js')
Я предполагаю, что я столкнусь с этой проблемой снова с другими файлами.
Когда все js-файлы скомпилированы и перемещены в мой каталог 'dest', этот относительный путь больше не является правильным.
Есть ли способ перезаписать это, чтобы он мог получить правильный файл?
Вот моя полная задача, которую я сейчас использую:
gulp.task('js', function () {
var browserify = require('browserify');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var globby = require('globby');
var through = require('through2');
var uglify = require('gulp-uglify');
var sourcemaps = require('gulp-sourcemaps');
var reactify = require('reactify');
// gulp expects tasks to return a stream, so we create one here.
var bundledStream = through();
bundledStream
// turns the output bundle stream into a stream containing
// the normal attributes gulp plugins expect.
.pipe(source('app.js'))
// the rest of the gulp task, as you would normally write it.
// here we're copying from the Browserify + Uglify2 recipe.
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
// Add gulp plugins to the pipeline here.
.pipe(uglify())
.on('error', gutil.log)
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./dest/js/'))
.pipe(connect.reload());
// "globby" replaces the normal "gulp.src" as Browserify
// creates it's own readable stream.
globby([
'./app/js/*.js',
'./app/js/materialize/**/*.js',
'./app/components/**/*.js'
], function(err, entries) {
// ensure any errors from globby are handled
if (err) {
bundledStream.emit('error', err);
return;
}
// create the Browserify instance.
var b = browserify({
entries: entries,
debug: true,
transform: [reactify]
});
var browser = browser({
});
// pipe the Browserify stream into the stream we created earlier
// this starts our gulp pipeline.
b.bundle().pipe(bundledStream);
});
// finally, we return the stream, so gulp knows when this task is done.
return bundledStream;
});
picker.js живет по адресу: ./app/js/materialize/date_picker/picker.js
Это правильное место, пока я не просмотрю и не переместлю его.