2

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タスクは次のとおりです。

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

ブラウザ化して移動するまでは、これが正しい場所です。

4

0 に答える 0