ไซต์เอกสารสำหรับภาษาการเขียนโปรแกรม DART ที่สร้างขึ้นด้วยความสูงและโฮสต์บน Firebase
เรายินดีต้อนรับการมีส่วนร่วมทุกชนิด! ในการตั้งค่าเว็บไซต์ในพื้นที่ให้ทำตามแนวทางด้านล่างในการสร้างเว็บไซต์ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการมีส่วนร่วมในที่เก็บข้อมูลนี้ให้ตรวจสอบแนวทางที่มีส่วนร่วม
เริ่มต้นด้วยการค้นหาปัญหาที่ดึงดูดความสนใจของคุณหรือสร้างปัญหากับการเปลี่ยนแปลงที่คุณเสนอ พิจารณาเพิ่มความคิดเห็นเพื่อให้ทุกคนรู้ว่าคุณกำลังดำเนินการอยู่และอย่าลังเลที่จะถามคำถามใด ๆ ที่คุณมีในเรื่องเดียวกัน
หากต้องการอัปเดตไซต์นี้ให้แยก repo ทำการเปลี่ยนแปลงของคุณและสร้างคำขอดึง สำหรับการเปลี่ยนแปลงขนาดเล็กที่มีอยู่ (เช่นการแก้ไขสไตล์และการพิมพ์ผิด) คุณอาจไม่จำเป็นต้องสร้างเว็บไซต์นี้ บ่อยครั้งที่คุณสามารถเปลี่ยนแปลงได้โดยใช้ GitHub UI เราสามารถจัดเตรียมการเปลี่ยนแปลงโดยอัตโนมัติในคำขอดึงของคุณ
สำคัญ
หากคุณกำลังโคลนที่เก็บนี้ในพื้นที่ให้ทำตามคำแนะนำด้านล่างเกี่ยวกับการโคลนนิ่งด้วย submodule
หากการเปลี่ยนแปลงของคุณเกี่ยวข้องกับตัวอย่างรหัสเพิ่ม/ลบหน้าหรือส่งผลกระทบต่อการนำทางให้พิจารณาการสร้างและทดสอบงานของคุณก่อนที่จะส่ง
หากคุณต้องการหรือต้องการสร้างเว็บไซต์ให้ทำตามขั้นตอนด้านล่าง
สำหรับการเปลี่ยนแปลงนอกเหนือจากข้อความที่เรียบง่ายและการปรับแต่ง CSS เราขอแนะนำให้เรียกใช้ไซต์ในพื้นที่เพื่อเปิดใช้งานวงจรการแก้ไขแบบสดชื่น
ติดตั้งเครื่องมือต่อไปนี้เพื่อสร้างและพัฒนาเว็บไซต์:
การเปิดตัว DART ที่มีเสถียรภาพล่าสุดจะต้องสร้างไซต์และเรียกใช้เครื่องมือ นี่อาจเป็นลูกดอกที่รวมอยู่ใน Flutter SDK หากคุณไม่มีลูกดอกหรือต้องการอัปเดตให้ทำตามคำแนะนำที่รับ Dart SDK
หากคุณติดตั้ง DART แล้วให้ตรวจสอบว่าอยู่บนเส้นทางของคุณและเวอร์ชันที่เสถียรล่าสุด:
dart --version
จำเป็นต้องมีการเปิดตัว LTS ที่มีเสถียรภาพ ล่าสุด ของ Node.js เพื่อสร้างเว็บไซต์ หากคุณไม่มี node.js หรือจำเป็นต้องอัปเดตให้ดาวน์โหลดเวอร์ชันที่สอดคล้องกันของคอมพิวเตอร์ของคุณและทำตามคำแนะนำจาก Node.js ดาวน์โหลดไฟล์เก็บถาวร หากคุณต้องการคุณสามารถใช้ตัวจัดการเวอร์ชันเช่น NVM และเรียกใช้ nvm install จากไดเรกทอรีรากของที่เก็บ
หากคุณติดตั้งโหนดอยู่แล้วตรวจสอบว่ามีอยู่บนเส้นทางของคุณและเวอร์ชันที่เสถียรล่าสุด (ปัจจุบัน 20.14 หรือใหม่กว่า) :
node --version
หากเวอร์ชันของคุณล้าสมัยให้ทำตามคำแนะนำการอัปเดตสำหรับวิธีที่คุณติดตั้ง
บันทึก
ที่เก็บนี้มี submodules git ซึ่งมีผลต่อวิธีการโคลนของคุณ เอกสาร GitHub มีความช่วยเหลือทั่วไปเกี่ยวกับการฟอร์กและการโคลนนิ่ง repos
หากคุณไม่ได้เป็นสมาชิกขององค์กร DART เราขอแนะนำให้คุณ สร้างส้อม ของ repo นี้ภายใต้บัญชีของคุณเองจากนั้นส่ง PR จากส้อมนั้น
เมื่อคุณมีส้อม (หรือคุณเป็นสมาชิก Dart org) ให้เลือกเทคนิคการโคลนนิ่ง submodule อย่างใดอย่างหนึ่ง ต่อไปนี้:
โคลน repo และ submodule ในเวลาเดียวกันโดยใช้ตัวเลือก --recurse-submodules :
git clone --recurse-submodules https://github.com/dart-lang/site-www.git
หากคุณโคลน repo โดยไม่มี submodule ให้เรียกใช้คำสั่งนี้จากรูทของที่เก็บ:
git submodule update --init --recursive
บันทึก
เมื่อใดก็ได้ในระหว่างการพัฒนาคุณสามารถใช้คำสั่ง git submodule เพื่อรีเฟรช submodules:
git pull && git submodule update --init --recursive
ก่อนที่คุณจะตั้งค่าโครงสร้างพื้นฐานของไซต์ต่อไปตรวจสอบเวอร์ชันที่ถูกต้องของ DART และ Node.js ที่ถูกต้องและพร้อมใช้งานโดยทำตามคำแนะนำในการรับสิ่งที่จำเป็นต้องมี
ตัวเลือก: หลังจากโคลนนิ่ง repo และ submodules ของมันให้สร้างสาขาสำหรับการเปลี่ยนแปลงของคุณ:
git checkout -b <BRANCH_NAME>
จากไดเรกทอรีรากของที่เก็บข้อมูลการพึ่งพาการพายของไซต์
dart pub get
ติดตั้ง pnpm โดยใช้วิธีการติดตั้งที่คุณต้องการ pnpm เป็นตัวจัดการแพ็คเกจที่มีประสิทธิภาพทางเลือกสำหรับแพ็คเกจ NPM หากคุณมี pnpm อยู่แล้วให้ตรวจสอบว่าคุณมีเวอร์ชันที่เสถียรล่าสุด เราขอแนะนำให้ใช้ corepack เพื่อติดตั้งและจัดการเวอร์ชัน pnpm เนื่องจากรวมกับการติดตั้งโหนดส่วนใหญ่
หากคุณไม่เคยใช้ corepack มาก่อนคุณจะต้องเปิดใช้ corepack enable ก่อน จากนั้นในการติดตั้งเวอร์ชัน pnpm ที่ถูกต้องจากไดเรกทอรีรูทของที่เก็บให้เรียกใช้ corepack install :
corepack enable
corepack install
เมื่อคุณติดตั้งและตั้งค่า pnpm แล้วให้ดึงการอ้างอิง NPM ของไซต์โดยใช้ pnpm install เราขอแนะนำให้คุณใช้ pnpm แต่คุณสามารถใช้ npm ได้
pnpm install
จากไดเรกทอรีรากให้เรียกใช้เครื่องมือ dash_site เพื่อตรวจสอบการตั้งค่าของคุณและเรียนรู้เกี่ยวกับคำสั่งที่มีอยู่
./dash_site --help
จากไดเรกทอรีรากให้บริการเว็บไซต์ในพื้นที่
./dash_site serve
คำสั่งนี้สร้างและให้บริการเว็บไซต์บนพอร์ตท้องถิ่นที่พิมพ์ไปยังเทอร์มินัลของคุณ
ดูการเปลี่ยนแปลงของคุณในเบราว์เซอร์โดยการนำทางไปยัง http: // localhost: 4000
หมายเหตุพอร์ตอาจแตกต่างกันหากมีการใช้ 4000
หากคุณต้องการตรวจสอบเอาต์พุตและโครงสร้าง HTML ที่สร้างขึ้นให้ดูไดเรกทอรี _site ในไฟล์ Explorer หรือ IDE
ทำการเปลี่ยนแปลงของคุณเป็น repo ท้องถิ่น
ไซต์ควรสร้างใหม่โดยอัตโนมัติในการเปลี่ยนแปลงส่วนใหญ่ แต่หากมีอะไรไม่อัปเดตให้ออกจากกระบวนการและเรียกใช้คำสั่งอีกครั้ง การปรับปรุงฟังก์ชั่นนี้มีการวางแผน กรุณาเปิดปัญหาใหม่เพื่อติดตามปัญหาหากเกิดขึ้น
กระทำการเปลี่ยนแปลงสาขาและส่ง PR ของคุณ
หากการเปลี่ยนแปลงของคุณมีขนาดใหญ่หรือคุณต้องการทดสอบให้พิจารณาตรวจสอบความถูกต้องของการเปลี่ยนแปลงของคุณ
เคล็ดลับ
หากต้องการค้นหาคำสั่งเพิ่มเติมที่คุณสามารถเรียกใช้รัน ./dash_site --help จากไดเรกทอรีรากของที่เก็บ
หากคุณทำการเปลี่ยนแปลงรหัสใน /examples หรือ /tool ให้ทำงานของคุณจากนั้นเรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบว่าเป็นข้อมูลล่าสุดและตรงกับมาตรฐานไซต์
./dash_site check-all
หากสคริปต์นี้รายงานข้อผิดพลาดหรือคำเตือนใด ๆ ให้แก้ไขปัญหาเหล่านั้นและเรียกใช้คำสั่งอีกครั้ง หากคุณมีปัญหาใด ๆ ให้แสดงความคิดเห็นเกี่ยวกับปัญหาของคุณหรือดึงคำขอและเราจะพยายามอย่างเต็มที่เพื่อช่วยคุณ นอกจากนี้คุณยังสามารถแชทกับเราได้ที่ #hackers-devrel Channel บน Discord ผู้มีส่วนร่วมของ Flutter!
บิลด์ที่ล้มเหลวด้วย Error: Some code excerpts needed to be updated! หมายความว่าข้อความที่ตัดตอนมาอย่างน้อยหนึ่งรหัสในไฟล์ markdown ไซต์ไม่เหมือนกับภูมิภาครหัสที่ประกาศในไฟล์ .dart ที่สอดคล้องกัน
ในการแก้ไขข้อผิดพลาดนี้จากรูทของไดเรกทอรี site-www run ./dash_site refresh-excerpts
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการสร้างการแก้ไขและการใช้ข้อความที่ตัดตอนมาให้ดูเอกสารประกอบแพ็คเกจ Updater ที่ตัดตอนมา
คำขอดึงที่ส่งสามารถจัดฉากโดยผู้ดูแลไซต์โดยอัตโนมัติ หากคุณต้องการจัดเวทีไซต์ด้วยตัวเองคุณสามารถสร้างเวอร์ชันเต็มและอัปโหลดไปยัง Firebase
หากคุณยังไม่มีโครงการ Firebase
นำทางไปยังคอนโซล Firebase และสร้างโครงการ Firebase ของคุณเอง (ตัวอย่างเช่น dart-dev-staging )
มุ่งหน้ากลับไปที่เทอร์มินัลในพื้นที่ของคุณและตรวจสอบว่าคุณเข้าสู่ระบบ
firebase login
ตรวจสอบให้แน่ใจว่าโครงการของคุณมีอยู่และเปิดใช้งานโครงการนั้น:
firebase projects:list
firebase use <your-project>
จากไดเรกทอรีรากของที่เก็บสร้างเว็บไซต์:
./dash_site build
สิ่งนี้สร้างเว็บไซต์และคัดลอกไปยังไดเรกทอรี _site ในพื้นที่ของคุณ หากไดเรกทอรีนั้นมีอยู่ก่อนหน้านี้มันจะถูกแทนที่
ปรับใช้เว็บไซต์โฮสติ้งเริ่มต้นของโครงการ Firebase ที่เปิดใช้งานของคุณ:
firebase deploy --only hosting
นำทางไปยังการประชาสัมพันธ์ของคุณเกี่ยวกับ GitHub และรวมลิงก์ของเวอร์ชันที่จัดฉาก ลองพิจารณาเพิ่มการอ้างอิงถึงการประชุมที่คุณจัดฉากเพื่อให้ผู้ตรวจสอบทราบว่ามีการเปลี่ยนแปลงเพิ่มเติมใด ๆ