您在這裡

D8筆記:找不到Library嗎?自己建立Composer Package,再引用到到專案內吧

前言:

今天在製作D8專案的時候,為了要製作Slideshow而用了Slick這個模組,但是安裝完畢這個模組時(我是使用 Composer require安裝),在後台出現Slick Library沒有安裝的訊息

而Slick的作者,並沒有在這個模組的composer.json裡面加入需要的Library,也沒有將這個Library加入到https://packagist.org/。因此,為了要全部都使用Composer來管理D8網站,我們只好自己來製作,自己來引用囉~

實際步驟

由於這個專案需要用到Slick,所以我就用Slick的Git來做範例囉。不過,如果你不是一個害羞的人,可以考慮直接寫給作者給他建議。然後下面步驟就可以省了,笑~

如果你是跟我一樣,只是想要簡單解決目前專案的問題,就Follow下面步驟吧~

STEP1:Fork到自己的Repo

如果你不了解什麼是Fork,可以看這裡,Fork到自己的Repo,就可以自行來編輯這裡的Library了。

STEP2:加入Composer.json檔案

這個檔案主要是為了加入composer的Library做準備。

因此,composer.json是對於這個Library做出描述

以下是範例:

{
  "name": "hellosanta/slick",
  "description": "Slick carousel, the last carousel you'll ever need.",
  "keywords": ["carousel", "slideshow", "Drupal"],
  "type": "drupal-library"
}

特別注意:這裡的Type屬性要寫[drupal-library]。由於在Composer template裡面,定義將這種Type的檔案,會放到web/libraries資料夾裡面。若不清楚可以看這裡

STEP3: 在Packagist建立帳號,並且貼入Fork出來的網址

註冊網址:https://packagist.org/

註冊帳號以後,很容易,只需要在按下Submit,並且提交剛剛Fork出來的網址即可

大功告成

到了這一步,恭喜你,已經製作了一個自己的Composer Package,以本次的範例就是[hellosanta/slick]囉

STEP4: 將Library加入到專案內

當然,這個步驟最簡單,直接加入即可

$ composer require hellosanta/slick

等到composer跑完畢,就會發現slick這個library已經到了指定的資料夾內了。:)

結論

其實經過詳細檢查,原生的D8配置,並沒有像Drupal的Composer Template一樣,把所有網路上能下載到的資源,全部交給Composer來處理,所以習慣原本配置還有D8原生配置的人,倒是沒有這方面的需求。但是就我個人來說,如果能夠都交給Composer來處理,代表未來同步所有的版本更新、還有整合其他用的到的套件,都會非常非常的方便,並且整個Repo也因為Drupal Composer Template的配置方式,變得更精簡且更有效率也更清楚,真的是超級棒的一種製作方式,給有興趣的人參考囉!