$ git clone https://github.com/mozilla/pdf.js.git
สั่งดาวน์โหลด script ทั้งหมดใน repository จาก github.com
มาไว้ในเครื่องคอมพิวเตอร์ของเรา บน current directory
ระยะเวลาในการ download ขึ้นอยู่ขนาดของ repository และความเร็วในการเชื่อมต่อ
ซึ่งยังนำ package นี้ไปใช้ในทันทีไม่ได้ ต้องมีขั้นตอนต่อไป
หลัง clone ทำให้ห้อง pdf.js มีขนาดรวมถึง 203 MB, 1626 Files, 194 Folders
$ cd pdf.js
หลังดาวน์โหลดจะสร้าง folder ต้องใช้คำสั่ง change directory เข้าไปอยู่ใน folder
แล้วจะสามารถสั่งดำเนินการอย่างอื่นต่อได้โดยสะดวก
$ npm install -g gulp-cli
ใช้โปรแกรม node package manager ติดตั้งแพคเกจ gulp-cli (CLI = Command Line)
ซึ่ง -g หรือ --global หมายถึง การติดตั้ง current package ให้เป็น global package ที่ project อื่นเรียกใช้ได้
ทำให้เรียกใช้คำสั่ง gulp -v (รุ่น 2.3.0) ใน folder ใดก็สามารถทำงานได้ ไม่ต้องติดตั้งซ้ำ
-g คือ ติดตั้งนอก project ทำให้เรียกใช้ได้ทั่วไป พบแฟ้มทั้งหมดใน dir %AppData%\npm\node_modules
ไม่มี -g คือ ติดตั้งใน project ทำให้มีแฟ้ม 919 MB, 35159 Files, 6009 Folders รวมกับ pdf.js
ติดตั้งเฉพาะ gulp-cli ใน blank folder ทำให้มีแฟ้ม 7.77 MB, 2644 Files, 708 Folders
สั่งถอนการติดตั้งด้วย npm uninstall -g gulp-cli จะมีผลให้ project อื่นเรียก gulp ใช้ไม่ได้
อ่านเพิ่ม https://css-tricks.com/gulp-for-beginners/
$ npm install
หน้าที่หลักของ npm
- สร้าง package.json เพื่อเริ่มต้นทำ project บน node
- ดาวน์โหลด ติดตั้ง หรือถอน module หรือ library หรือ package ลงเครื่อง หรือลงในโปรเจค
- อัพเดท module
หลัง install ทำให้มีแฟ้ม 1.13 GB, 38934 Files, 6644 Folders
$ gulp server
เปิด http://localhost:8888/web/viewer.html
โปรแกรม gulp เข้าถึงแฟ้ม
gulpfile.js ที่อยู่ใน root directory ของ project
มองหา task ชื่อ server (line 1837 - 1862) และดำเนินการตามนั้น
ถ้าสนใจสร้าง task ใช้เอง อ่านเพิ่มที่ https://devahoy.com/blog/2015/04/getting-started-with-gulp/
$ gulp generic
กระบวนการสร้าง production ให้นำแฟ้มที่ได้จากการสร้าง ไปใช้ในเว็บไซต์
ผลการสร้างจะได้แฟ้มใน folder ชื่อ /build/generic
ผู้พัฒนาสามารถ upload แฟ้มใน /pdf.js/build/generic/* ขึ้นไปยัง remote server ได้
มองหา task ชื่อ generic (line 846 - 866) และดำเนินการตามนั้น
# Node.js - https://www.thaiall.com/reactnative/