麻烦与D3.js和browserify

时间:2017-09-18 16:27:10

标签: javascript d3.js ecmascript-6 gulp browserify

我正在尝试将我的javascript代码与最新版本的D3.js(4.10.2)和browserify捆绑在一起,但它不起作用。该错误出现在d3.json和d3.csv的请求函数中。无法加载文件,我收到以下错误:“位于0的JSON中出现意外的令牌T”。我认为这是配置问题,因为没有browserify代码工作得很好。我尝试了几个解决方案,比如https://github.com/vigetlabs/blendid/issues/17,但遗憾的是没有成功。我真的很困惑!

gulpfile.js:

const babel = require('babelify');
const browserify = require('browserify');
const gulp = require('gulp');
const gutil = require('gulp-util');
const source = require('vinyl-source-stream');

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

  return browserify({
    entries: ['./src/js/index.js'],
    extensions: ['.js'],
    paths: ['./node_modules', './src/js/']
  })
    .transform(babel)
    .bundle()
    .on('error', gutil.log.bind(gutil, 'Browserify Error'))
    .pipe(source('index.js'))
    .pipe(gulp.dest('./dist/js/'));
});

gulp.task('default', ['browserify']);

文件结构:

/src
  /css
  /data
  /js
  index.html

文件加载:

d3.queue()
  .defer(d3.json, 'data/file1.json')
  .defer(d3.json, 'data/file2.json')
  .await((error, file1Result, file2Result) => { ... });

也许你们有个主意!

1 个答案:

答案 0 :(得分:0)

这是我的问题的可能解决方案:https://github.com/d3/d3-request/issues/24#issuecomment-328945696

它对我有用,但它只是一个黑客!

我希望很快能有永久的解决方案。