将LoDash与EmberCLI一起使用

时间:2015-01-27 01:14:35

标签: ember.js ember-cli lodash

是否有人使用使用LoDash的Ember-CLI构建的(简单)ember-app项目的工作示例? (例如:我想在我的路由和控制器中使用lodash,_.someLodashFunc)。

我还没有看到网络上的任何主题/文章,它们提供了有关如何做到这一点的明确,逐步解释。

如果可能,使用lodash v3.0.0(我使用最新的ember-cli,v0.1.9)。

谢谢, 拉嘎


我发现了如何,你需要生成一个自定义的lodash版本(" lodash modern")。使用lodash-cli:https://lodash.com/custom-builds

在命令控制台上键入:lodash modern ...,然后您将获得生成的javascript文件:lodash.custom.js

将该文件放在"供应商"你的ember-cli项目的目录。

修改Brocfile,添加:

app.import('vendor/lodash.custom.js', {
  'lodash': [
    'default'
  ]
});

那就是......你不必做"导入_来自' lodash'"在任何你的js文件中。事实上,不要这样做(你会得到一个错误)。 _ var随时可用。

例如,我有一个像这样的Route对象:

import Ember from 'ember';

export default Ember.Route.extend({
  model: function() {
    console.log('hohoho: ' + _.chunk(['a', 'b', 'c', 'd'], 2));
    return Ember.Object.create({name: 'Raka'});
  }
});

我可以看到hohoho:,当我访问那条路线时,b,c,d在javascript控制台中打印出来。

CORRECTION

你真的不需要那个lodash-cli。

我已经尝试过这种方式(我想更合适):<​​/ p>

  1. bower安装lodash --save
  2. 在Brocfile.js中,有这一行:app.import(&#39; bower_components / lodash / lodash.js&#39;);
  3. 那就是它。 _在路由器/控制器中自动可用。

    我对d3做了同样的事情:

    1. bower install d3 --save
    2. 在Brocfile.js中,有这一行:app.import(&#39; bower_components / d3 / d3.js&#39;);
    3. 变量名为&#39; d3&#39;自动可用。


      添加了相关链接:

      1. Import custom library in ember-cli
      2. http://tiku.io/questions/2866484/how-to-include-a-local-javascript-im-ember-cli-application(引用:如果您不需要在vendor.js文件中缩小它们,可以将它们放在public / js中,然后将其作为普通脚本文件包含在app / index中.html。我将这个方法用于像moment.js这样的库。在构建期间,公用文件夹会直接复制到你的站点根目录。)
      3. Proper way to access third party libs such as D3 in Ember CLI?

3 个答案:

答案 0 :(得分:9)

你可以使用一些东西: https://github.com/levanto-financial/ember-lodash 或者手动完成。

我没有任何示例,但它应该像修改这3个文件一样简单:

bower.json

只需添加一行

即可
"lodash": "4.16.4",

到您的dependencies并在命令行中运行bower install

或者,您可以通过bower安装它:

$ bower install lodash --save

Brocfile.js

为了被Broccoli包括在内:

app.import('bower_components/lodash/lodash.js');

var app = new EmberApp();

之后的某处添加此内容

.jshint.rc

添加以下行:

"_": true,

predef部分的某个地方(如果您不想看到_ is undefined等警告)。

我还没有测试过,但我希望它有所帮助:)

答案 1 :(得分:5)

您可以使用Bower安装最新的稳定版本。在项目的根目录中,运行:

bower install lodash --save

然后使用Brocolli导入它,在Brocfile.json之后的某个地方var app = new EmberApp( ...添加此行:

app.import('bower_components/lodash/lodash.js');

答案 2 :(得分:3)

ember-lodash addon将是最好的宠物。(https://www.npmjs.com/package/ember-lodash

安装插件:ember install ember-lodash

仅包含字符串函数

import _string from 'lodash/string';

let truncatedString = _string.trunc(rawString);

要包含整个lodash库,

import _ from 'lodash/lodash';

let truncatedString = _.trunc(rawString);