首页 文章

使用Ember CLI从外部库导入所有资产的正确方法

提问于
浏览
1

我正在开发一个Ember.js项目,并希望利用Slick Carousel库 . 我已经通过Bower在我的项目文件夹中安装了库,并且很难将其导入到我的项目中 .

在我的ember-cli-build.js中,我添加了import语句,如下所示:

app.import('bower_components/slick-carousel/slick/slick.css');
app.import('bower_components/slick-carousel/slick/slick-theme.css');
app.import('bower_components/slick-carousel/slick/slick.js');

我遇到的问题是,当我进行构建(字体,资产等)时,其余所需资产不会构建并包含在dist文件夹中,从而导致出现错误,缺少字体和资产“bower_components / slick-carousel”文件夹,但不在我的实际Ember应用程序的构建中 .

编辑:看起来像我需要的Broccoli-Funnel . 通过从'bower_components'文件夹中指定源文件并将相对路径指向ember-cli-build.js文件中的'dist'文件夹,解决了该问题 .

请注意:作为推荐的插件使用'broccoli-funnel'作为解决方案,通常在其他地方引用的'broccoli-static-compiler'插件已被弃用 .

1 回答

  • 1

    Broccoli-funnel结束了我正在寻找的东西 . 通过将以下内容放在ember-cli-build.js中,所需的文件将在构建期间放在正确的目录中:

    var Funnel = require('broccoli-funnel');
    var requiredAssets = new Funnel('bower_components/slick-carousel/slick/fonts', {
          srcDir: '/',
          include: ['**/*.*'],
          destDir: '/assets/fonts'
    });
    return app.toTree([requiredAssets]);
    

相关问题