บทความนี้บันทึกวิธีเพิ่ม Bootstrap 4 (BS4) และ Font-Awesome 5 (FA5) เข้าไปในโปรเจคที่พัฒนาบน Ionic3

Check List

  • ติดตั้ง Library ที่จำเป็นทั้งหมด
  • ก็อปปีไฟล์ Asset ที่จำเป็นทั้งหมด ไปที่ /www
  • เพิ่มไฟล์ scss ที่เกี่ยวข้องทั้งหมดลงในกระบวนการ Compile ของ SASS
  • ทำให้ build script ของ ionic รวมสคริปต์, stylesheet และ asset ของ BS4 และ FA5 เข้าในโปรเจค

ติดตั้ง Library ที่จำเป็นทั้งหมด

ติดตั้ง Library ที่จำเป็นผ่าน npm

$ npm i --save bootstrap@4.1.3
$ npm i --save @fortawesome/fontawesome-free
$ npm i --save jquery@latest
$ npm i --save @types/jquery # ถ้าต้องการใช้ jQuery ใน ionic ด้วย

ก็อปปีไฟล์ Asset ที่จำเป็นทั้งหมด ไปที่ /www

เพิ่มสคริปต์สำหรับก็อปปีไฟล์ด้านล่างนี้ลงใน app-script ของ ionic  ดูรายละเอียดเพิ่มเติมที่นี่

module.exports = {
  ...,
  copyBootstrap: {
    src: [
      '{{ROOT}}/node_modules/jquery/dist/jquery.min.js',
      '{{ROOT}}/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js'
    ],
    dest: '{{WWW}}/assets/js'
  },
  copyFontAwesome: {
    src: ['{{ROOT}}/node_modules/@fortawesome/fontawesome-free/webfonts/**/*'],
    dest: '{{WWW}}/assets/fonts'
  }
}

เพิ่มไฟล์ scss ที่เกี่ยวข้องทั้งหมดลงในกระบวนการ Compile ของ SASS

แก้ไขไฟล์ node_modules/@ionic/app-scripts/config/sass.config.js โดยเพิ่ม BS4 และ FA5 ลงในรายการตามรูป

  includePaths: [
    'node_modules/bootstrap/scss',
    'node_modules/@fortawesome/fontawesome-free/scss',
    ...
  ],

เพิ่ม font-awesome ลงใน src/theme/variables.scss โดยเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

// Bootstrap
// --------------------------------------------------
@import 'bootstrap';

// Font-Awesome
// --------------------------------------------------
$fa-font-path: "../assets/fonts" !default;
@import 'fontawesome';
@import 'brands';  // optional
@import 'regular'; // may select one between regular  
@import 'solid';   // and solid or both
//@import 'v4-shims' // if you are upgrade from v4, include this

ทำให้ build script ของ ionic รวมสคริปต์, stylesheet และ asset ของ BS4 และ FA5 เข้าในโปรเจค

เพิ่ม block ด้านล่างนี้ลงใน package.json

 "config": {
    "ionic_copy": "./app-scripts-config/copy.config.js",
    "ionic_sass": "./app-scripts-config/sass.config.js"
  },

ติดตั้ง JS Script ใน src/index.html

...
  <!-- cordova.js required for cordova apps (remove if not needed) -->
  <script src="cordova.js"></script>

  <!-- bs4 -->
  <script src="assets/js/jquery.min.js"></script>
  <script src="assets/js/bootstrap.bundle.js"></script>
...