สิ่งนี้อาจจะไม่ตรงประเด็นเล็กน้อย แต่คุณสามารถใช้ Grunt (http://gruntjs.com/) ซึ่งทำงานบน node.js (http://nodejs.org/ ซึ่งมีให้สำหรับแพลตฟอร์มหลักทั้งหมด) เพื่อเรียกใช้งานจาก บรรทัดคำสั่ง. มีพวงของปลั๊กอินสำหรับเครื่องมือนี้เหมือนคอมไพเลอร์แม่แบบhttps://npmjs.org/package/grunt-contrib-jst ดูเอกสารบน GitHub, https://github.com/gruntjs/grunt-contrib-jst (คุณจะต้องเข้าใจวิธีเรียกใช้ node package manager https://npmjs.org/ไม่ต้องกังวลมันง่ายและหลากหลายอย่างไม่น่าเชื่อ)
จากนั้นคุณสามารถเก็บเทมเพลตทั้งหมดของคุณไว้ในไฟล์ html แยกจากกันเรียกใช้เครื่องมือเพื่อคอมไพล์ล่วงหน้าทั้งหมดโดยใช้ขีดล่าง (ซึ่งฉันเชื่อว่าเป็นการพึ่งพาสำหรับปลั๊กอิน JST แต่ไม่ต้องกังวลตัวจัดการแพ็คเกจโหนดจะติดตั้งการอ้างอิงให้คุณโดยอัตโนมัติ)
สิ่งนี้รวบรวมเทมเพลตทั้งหมดของคุณไว้ในสคริปต์เดียวพูด
templates.js
การโหลดสคริปต์จะตั้งค่าโกลบอล - "JST" ตามค่าเริ่มต้นซึ่งเป็นอาร์เรย์ของฟังก์ชันและสามารถเข้าถึงได้ดังนี้:
JST['templates/listView.html']()
ซึ่งจะคล้ายกับ
_.template( $('#selector-to-your-script-template'))
หากคุณใส่เนื้อหาของแท็กสคริปต์นั้นใน (template /) listView.html
อย่างไรก็ตามนักเตะที่แท้จริงคือ: Grunt มาพร้อมกับงานนี้ที่เรียกว่า 'watch' ซึ่งโดยทั่วไปจะตรวจสอบการเปลี่ยนแปลงของไฟล์ที่คุณกำหนดไว้ในไฟล์ grunt.js ในเครื่องของคุณ (ซึ่งโดยพื้นฐานแล้วเป็นไฟล์กำหนดค่าสำหรับโครงการ Grunt ของคุณในจาวาสคริปต์ ) หากคุณไม่พอใจให้เริ่มงานนี้ให้คุณโดยพิมพ์:
grunt watch
จากบรรทัดคำสั่ง Grunt จะตรวจสอบการเปลี่ยนแปลงทั้งหมดที่คุณทำกับไฟล์และเรียกใช้งานทั้งหมดที่คุณได้ตั้งค่าไว้ในไฟล์ grunt.js นั้นโดยอัตโนมัติหากตรวจพบการเปลี่ยนแปลงเช่นงานjst ที่อธิบายไว้ข้างต้น แก้ไขแล้วบันทึกไฟล์ของคุณจากนั้นเทมเพลตทั้งหมดของคุณจะคอมไพล์ใหม่เป็นไฟล์ js เดียวแม้ว่าจะกระจายออกไปในไดเร็กทอรีและไดเร็กทอรีย่อยต่างๆ
งานที่คล้ายกันนี้สามารถกำหนดค่าสำหรับการทับจาวาสคริปต์ของคุณการเรียกใช้การทดสอบการเชื่อมต่อและการย่อ / ขยายไฟล์สคริปต์ของคุณ และทั้งหมดนี้สามารถเชื่อมโยงกับงานของนาฬิกาได้ดังนั้นการเปลี่ยนแปลงไฟล์ของคุณจะทำให้เกิดการสร้าง "สร้าง" ใหม่ของโครงการ
ต้องใช้เวลาพอสมควรในการตั้งค่าและทำความเข้าใจวิธีกำหนดค่าไฟล์ grunt.js แต่ก็คุ้มค่ากับเวลาที่ลงทุนไปและฉันไม่คิดว่าคุณจะกลับไปใช้วิธีการทำงานแบบ pre-grunt