Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 如何将Supergroup.js安装为Ember cli依赖项_Ember.js_Ember Cli - Fatal编程技术网

Ember.js 如何将Supergroup.js安装为Ember cli依赖项

Ember.js 如何将Supergroup.js安装为Ember cli依赖项,ember.js,ember-cli,Ember.js,Ember Cli,我想在ember cli中使用(我使用ember cli:0.2.7和ember 1.12.1)。超群被实现为下划线或LoDash mixin,所以作者建议首先包含LoDash依赖项 将依赖项添加到bower.json后: //bower.json "dependencies": { //... "lodash": "^3.9.3", "supergroup":"1.0.13" } 我得到一个错误: Could not find module lodash // at superg

我想在ember cli中使用(我使用
ember cli:0.2.7
ember 1.12.1
)。超群被实现为下划线或LoDash mixin,所以作者建议首先包含
LoDash
依赖项

将依赖项添加到
bower.json
后:

//bower.json
"dependencies": {
  //...
  "lodash": "^3.9.3",
  "supergroup":"1.0.13"
}
我得到一个错误:

Could not find module lodash
// at supergroup.js:  "_ = require('lodash');"
作为一种解决方法,我从
supergroup.js
中删除了以下代码片段:

// if (typeof require !== "undefined") {
//     if (typeof underscore !== "undefined" && underscore === "underscore") {
//         var _ = require('underscore');
//     } else {
//         var _ = require('lodash');
//     }
// }
它成功了


我不太了解ember cli依赖项是如何工作的,所以我想了解发生了什么事情,以及如何正确地安装Supergroup.js,而不使用暴力补丁,在
bower.json
中添加
依赖项
(或者可能在
package.json

您不必在bower.json中包含lodash,它已经在supergroup中指定为依赖项。作者的意思是(我假设)就javascript而言,应该首先包含它

这实际上比我想象的要复杂得多。基本上,supergroup.js试图弄清楚它是与AMD模块一起使用还是没有使用您注释掉的代码

ember cli通过babel将ES6模块转换为AMD模块。因此,当加载supergroup.js时,它会检测到
require
,因此希望
lodash
可用。它不是

因为ember cli目前无法处理匿名AMD模块:

define([], function() {
    return lib;
});
这就是lodash在弄清楚它所处的环境以及如何暴露自己时所做的

我试图强迫lodash以supergroup.js可以采用的格式提供自己,但我认为如果不更改ember cli、lodash或supergroup.js,目前不可能实现。我真的建议你现在就用你编辑过的版本。这是由各种相关问题造成的

参考资料:


看起来它可以与
ember-browserfy
一起使用

 npm install --save-dev lodash
 npm install --save-dev supergroup

 //where needed
 import _ from 'npm:supergroup';

bower.json
Brocfile.js
.jshintrc
中没有任何内容

谢谢大家!!是否可以对supergroup.js代码进行另一次更正,以便将此更正作为supergroup作者的合理请求提出?(我的更正显然无法提出)@Artych问题其实并不在于supergroup.js(主要是在任何情况下),而是与lodash集成到ember cli。我认为你最好先离开这个问题,直到ember cli完全离开bower,并且匿名amd模块的问题得到解决,然后再讨论它。lodash和ember cli目前都未完成修复ES6模块问题的尝试。ember cli现在支持匿名AMD模块。