[英]Cannot import ES6 NPM module directly in to Ember CLI
我正在尝试在项目中使用d3数组 。 该模块本身包括原始ES6模块和UMD构建。 我希望能够将其直接添加为我的ember-cli项目的依赖项并使其可用,但是事实并非如此。
我已经看到有超过一年的老建议说使用ember-browserify
,还有其他建议做一个垫片,但AFAIK仅在有Bower依赖的情况下才是理想的选择,并且Bower似乎正在淘汰。
为了正确起见,我如何才能像import {mean} from 'd3-arrays
项目一样直接导入该模块,并将其用作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中有一些设计决策,说明为什么此方法不起作用,请向我指出。
我想出了一个优雅的解决方案:
我创建了一个垫片库,该垫片库从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);
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.