需要带有 browserify 的 d3 插件

requiring d3 plugin with browserify

我正在使用 browserify 为单页应用程序带来理智。但是,我对引入 d3 插件感到困惑。我已经安装了 d3 和 lasso 插件:

 npm install d3
 npm install d3-lasso

然后在我的应用程序中我这样做

d3 = require('d3');
require('d3-lasso');

但是在我的后续模块中:

function myModule() {
  var lasso = d3.lasso();
}

产生此错误:

 Uncaught TypeError: d3.lasso is not a function

然后我尝试了:

d3 = require('d3');
d3.lasso = require('d3-lasso');

但结果是一样的。

执行此操作的正确方法是什么?

编辑:

以下成语有效:

d3 = require('d3');
d3.lasso=require('d3-lasso').lasso;

但似乎有点笨拙。有没有更好的方法来做到这一点(更好的意思是 'more common' 或 'more generalizable' 或 'more consistent with how it is done by people who do this for a living')?

如果你想使用 ES6 导入,对我有用的语法是

import * as d3 from 'd3';
import { lasso } from 'd3-lasso';
d3.lasso = lasso;