【发布时间】:2016-08-31 20:26:16
【问题描述】:
我正在尝试构建一个概念验证应用程序,该应用程序使用 DC.js 引入一些静态数据并将其可视化。我们决定使用 Vue.js 作为我们的框架,使用 Webpack 作为我们的构建工具。我在基本配置中包含了 D3.js、Crossfilter 和 DC.js。
resolve: {
extensions: ['', '.js', '.vue'],
fallback: [path.join(__dirname, '../node_modules')],
alias: {
'src': path.resolve(__dirname, '../src'),
'assets': path.resolve(__dirname, '../src/assets'),
'components': path.resolve(__dirname, '../src/components'),
'd3': path.resolve(__dirname, '../bower_components/d3/d3.min.js'),
'crossfilter': path.resolve(__dirname, '../bower_components/crossfilter/crossfilter.min.js'),
'dc': path.resolve(__dirname, '../bower_components/dcjs/dc.js') // using unminified version to look at exactly where the error is coming from
}
}
并且在文件中带有像这样的实际可视化组件。
var d3 = require('d3')
var cf = require('crossfilter')
var crossfilter = cf.crossfilter
var dc = require('dc')
但是,DC.js 需要 crossfilter 才能工作,并且它会挂在 DC.js 上下文中对 crossfilter 的调用的第一个实例上。此外,在我加载页面后,我无法再在控制台中访问crossfilter,但我可以访问D3。是什么将 D3.js 作为全局需求引入而不是将交叉过滤器作为一个整体引入?
我在这里忽略了一些配置吗?
【问题讨论】:
-
您可以使用
{externals: 'crossfilter': 'crossfilter'}并将bower_components添加到您的解析目录列表(webpack.github.io/docs/…) 中吗?
标签: javascript d3.js webpack crossfilter