2017-08-20 25 views
0

我正在開發一個Ember.js項目並希望利用Slick Carousel庫。我已經通過Bower在我的項目文件夾中安裝了該庫,並且難以將其導入到我的項目中。使用Ember CLI從外部庫導入所有資產的正確方法

在我的餘燼-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應用程序的構建中。

編輯:它看起來像西蘭花漏斗是我所需要的。通過指定'bower_components'文件夾中的源文件並將相對路徑指向ember-cli-build.js文件中'dist'文件夾,解決了該問題。

注意:'broccoli-static-compiler'插件通常在其他地方引用爲解決方案,因此推薦使用'broccoli-funnel'作爲推薦插件。

回答

0

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]);