我试图在项目中使用d3-arrays。该模块本身包括原始ES6模块和UMD构建。我希望能够直接将它作为依赖项添加到我的ember-cli项目并使其可用,但事实并非如此。
我已经看到一年多的建议说要使用ember-browserify
,而其他人建议使用垫片,但AFAIK如果它是凉亭依赖,那真的只会是理想的,而凉亭似乎要走出去了。
为了正确起见,我该如何导入此模块,就好像它是我项目的一部分并将其用作import {mean} from 'd3-arrays
而无需先将其转换为其他包格式?
我已尝试制作一个仅导出导入的UMD代码的垫片:
// index.js
var d3ArraysExports = require('d3-arrays');
d3ArraysExports.name = 'd3-arrays-shim';
module.exports = d3ArraysExports;
Ember发现这个模块很好,但它永远不会被添加到require条目列表中。
如果在Ember CLI中有一些设计决定,为什么这不起作用,请指出。
答案 0 :(得分:0)
我找到了一个优雅的解决方案:
我创建了一个垫片库,它从d3阵列导入ES6源并使它们可用于西兰花。这是一个例子:
var path = require('path');
module.exports = {
name: 'd3-arrays',
treeForAddon: function() {
var packagePath = path.join(this.project.addonPackages['ember-d3-arrays-shim'].path, 'node_modules', 'd3-arrays');
var d3ArraysTree = this.treeGenerator(packagePath);
return this._super.treeForAddon.call(this, d3ArraysTree);
}
};