需要带有 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;
我正在使用 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;