首页 文章

将LoDash与EmberCLI一起使用

提问于
浏览
10

有没有人有一个使用Ember-CLI使用LoDash构建的(简单)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项目的“vendor”目录下 .

修改Brocfile,添加:

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

就是这样......你不必在你的任何js文件中执行“import _ from'loodash'” . 事实上,不要这样做(你会得到一个错误) . _ 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,当我访问那条路线时,我在javascript控制台中打印出来 .

更正

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

我试过这种方式(我想更合适):

  • 凉亭安装lodash --save

  • 在Brocfile.js中,有这一行:app.import('bower_components/lodash/lodash.js');

而已 . _在路由器/控制器中自动可用 .

我对d3做了同样的事情:

  • bower安装d3 --save

  • 在Brocfile.js中,有这一行:app.import('bower_components/d3/d3.js');

名为'd3'的变量可自动使用 .


新增相关链接:

3 回答

  • 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 这样的警告) .

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

  • 5

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

    bower install lodash --save
    

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

    app.import('bower_components/lodash/lodash.js');
    
  • 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);
    

相关问题