【发布时间】:2015-10-20 16:05:47
【问题描述】:
我正在尝试在项目中使用d3-arrays。该模块本身包括原始 ES6 模块和 UMD 构建。我希望能够将其作为依赖项直接添加到我的 ember-cli 项目中并使其可用,但事实并非如此。
我看到一年多以前的建议说要使用 ember-browserify,还有其他建议做一个 shim,但是 AFAIK 这只有在它是一个 bower 依赖项时才是理想的,而且 bower 似乎在出路。
为了正确起见,我怎样才能将这个模块作为我项目的一部分导入并用作import {mean} from 'd3-arrays,而无需先将其转换为另一种包格式?
我尝试过制作一个仅导出导入的 UMD 代码的 shim:
// index.js
var d3ArraysExports = require('d3-arrays');
d3ArraysExports.name = 'd3-arrays-shim';
module.exports = d3ArraysExports;
Ember 发现这个模块很好,但它从未被添加到需要条目列表中。
如果在 Ember CLI 中有一些关于为什么这不起作用的设计决策,请指出它。
【问题讨论】:
-
您的 shim 是否也启用了命名导入(例如
import {foo} from "bar"?命名导入是ember-browserify的一个已知警告,但安装后您可以执行import d3arrays from "npm:d3arrays"并通过它使用方法(d3arrays.mean([1,2])) 等 -
我遇到了同样的问题。我想使用 d3.js 的一些模块,如 d3-arrays、d3-scale 等。这是首选的解决方案。我是否需要为所有这些创建一个 shim 库?请指导。
标签: javascript ember.js d3.js ember-cli