كان تحديد وحدة Seajs Github واضحًا نسبيًا. ولكن لا يتم تغطيتها في كل شيء ، خاصةً عندما تحتاج إلى كتابة [معرف الوحدة النمطية] و [التبعية للوحدة] ، أو عندما تكتب أداة الأتمتة الخاصة بك للنقل (يبدو أن SPM غير قابلة للتكيف وليس من السهل القيام به استخدام ، بعد كل شيء ، قد يختلف كل بنية دليل المشروع بشكل كبير وليس من السهل تغييرها. ويجب فهم قواعد تحليل الهوية تمامًا.
ملحوظات:
1. يتم تحليل المعرف الأعلى دائمًا بالنسبة إلى المسار الأساسي الأساسي.
2. يتم تحليل المسار المطلق ومسار الجذر دائمًا بالنسبة للصفحة الحالية.
3. المسارات النسبية في المتطلبات وتتطلب.
4. يتم دائمًا تحليل المسار النسبي في Seajs.use بالنسبة للصفحة الحالية.
في Seajs ، يمكن تقسيم معرف الوحدة النمطية تقريبًا إلى ثلاثة أنواع: [المعرف النسبي] ، [معرف المستوى العلوي] ، و [المسار الطبيعي].
تشمل المسارات العادية "المسار المطلق" ، "مسار الجذر" ، إلخ.
نحن هنا نركز على [الشعار النسبي] و [الشعار العلوي].
تشير المعرفات النسبية إلى "./" ، "../" ، مثل: "./othermodule" ، "../lib/base".
تشير معرفات المستوى الأعلى إلى الملفات أو الدلائل (يمكن أن تحتوي على: رسائل ، -، _) ، مثل: "التطبيق/العنمل/حدد"
هناك ثلاثة أماكن مطلوبة معرف الوحدة النمطية:
نسخة الكود كما يلي: DEFINE ("id (1)" ، ["../ id2 (2)"] ، الوظيفة (طلب ، صادرات ، وحدة) {
var modulea = require ('./ modulea (3)') ؛
})
ملاحظة: سواء كانت المعلمة الأولى [معرف الوحدة النمطية] أو المعلمة الثانية [معرف الوحدة النمطية] أو [معرف الوحدة الموثوقة] ، فإن معيار المقارنة النهائية هو [ملف محجوف URI].
لذلك ، يمكن كتابة هذه الأماكن الثلاثة التي يجب كتابة المعرفات فيها بأي شكل من الأشكال ، وطالما تم تحليلها أخيرًا في نفس URI ، فهي تعتبر نفس الوحدة.
أثناء عملية تحليل المعرف ، ستتم معالجتها مسبقًا من خلال الاسم المستعار والمسارات المحددة في Seajs.Config.
قواعد حل المسار الأساسي
(الطبقة 1 ، لا يعتمد المسار نفسه على أي إعدادات)
1.
2. المسار الافتراضي للقاعدة هو دليل SEAJS.
3. [التعريف النسبي]: تحليل بالنسبة للصفحة الحالية.
قواعد حل المسار في المسارات
(الطبقة 1 ، لا يعتمد المسار نفسه على أي إعدادات)
1.
2. سيتم استبدال الحقول في المسارات في شكل متغيرات حيث يتم استخدامها ثم تحليلها.
على سبيل المثال:
انسخ الرمز كما يلي: // كتلة الرمز (1)
// تعريف المسار:
seajs.config ({
القاعدة: "./ app/src" ،
طريق:{
"A": "../ lib" ، // (1) المسار النسبي
"lib": "path/to/lib" ، // (2) شعار المستوى الأعلى
"L2": "/lib" // (3) مسار الجذر
}
}) ؛
// وحدة MOD/M/M.JS:
...
يتطلب ("A/jQuery") ؛
// => تحويل إلى: "../../lib/jquery"
// => التحميل: mod/lib/jQuery (ملاحظة خاصة 1)
...
// وحدة MOD/F.JS:
...
يتطلب ("A/jQuery") ؛
// => تحويل إلى: "../../lib/jquery"
// => التحميل: lib/jQuery (ملاحظة خاصة 2)
...
قواعد حل المسار في الاسم المستعار
(في الطبقة 2 ، يمكن أن يعتمد المسار نفسه على إعدادات المسارات)
1. قواعد الاسم المستعار تشبه المسارات ، ويمكن لمسار الاسم المستعار أيضًا استخدام "المتغيرات" في المسارات
2. تذكير: حاول استخدام [تحديد المستوى العلوي] ، [مسار الجذر] ، و [المسار المطلق] في المسارات والاسم المستعار ، ولا تستخدم [التعريف النسبي] ، لأنه سيتم تحليل وحدات أعماق مختلفة في مسارات مختلفة.
3.
قواعد حل المسار seajs.use
[التعريف النسبي]: تحليل بالنسبة للصفحة الحالية.
تعريف قواعد تحليل معرف الوحدة النمطية (1)
(في الطبقة 3 ، يمكن ضبط المسار بالنسبة إلى الاسم المستعار أو المسارات)
يمكنك استخدام: [التعريف النسبي] ، [تحديد المستوى العلوي] ، [مسار الجذر]
يوصى باستخدام [تحديد المستوى الأعلى].
【التعريف النسبي】: التحليل بالنسبة للصفحة الحالية
انسخ الرمز كما يلي: // كتلة الرمز (2)
// config - استخدم أيضًا التكوين في [Code Block (1)]
// الوحدة 1 ، لا غموض ، تحليل مسار الجذر
define ("/app/src/module/base" ، ..) ؛
// الوحدة 2 ، تحديد هوية لا لبس فيه ، من المستوى العلوي ، محسّن بالنسبة إلى المسار الأساسي الأساسي
define ("app/src/module/base" ، ..) ؛
// الوحدة 3 ، مع الغموض والتعريف النسبي ، هنا بالنسبة للصفحة الحالية (راجع صفحة HTML لهذه الوحدة)
// ولكن حتى لو تم استخدام [Superficive نفس "ID"] في مكان آخر ، فقد يتم تحليل وحدات مختلفة
define ("./ app/src/module/base" ، ..) ؛
قواعد حل معرف التبعية للوحدة (2)
(في الطبقة 3 ، يمكن ضبط المسار بالنسبة إلى الاسم المستعار أو المسارات)
【التعريف النسبي】: تحليل المسار الأساسي القاعدة النسبية
انسخ الرمز كما يلي: // كتلة الرمز (3)
// config - استخدم أيضًا التكوين في [Code Block (1)]
// لا غموض ، بالنسبة لقرار مسار الجذر
Define (".." ، ["/APP/SRC/MODULE/BASE"] ، ..)
// لا يوجد غموض ، تحديد المستوى الأعلى ، بالنسبة إلى تحليل المسار الأساسي الأساسي
DEFINE (".." ، ["APP/SRC/MODULE/BASE"] ، ..)
// هناك غموض ، بالنسبة للوحدة الحالية.
// يبدو أن التبعية هنا تعتمد على `الوحدة 3` في [كتلة الكود (2)]
// ولكن إذا لم تكن الوحدة الحالية والصفحة الحالية في نفس الدليل ، فلن يتم تحليلها في "الوحدة 3"
define (".." ، ["./app/src/module/base"] ، ..)
تتطلب قواعد دقة المعرف للوحدات النمطية الأخرى داخل الوحدة (3)
(في الطبقة 3 ، يمكن ضبط المسار بالنسبة إلى الاسم المستعار أو المسارات)
【التعريف النسبي】: تحليل المسار الأساسي القاعدة النسبية
انسخ الرمز كما يلي: // كتلة الرمز (4)
// config - استخدم أيضًا التكوين في [Code Block (1)]
DEFINE (".." ، [..] ، وظيفة (طلب) {
// لا غموض ، بالنسبة لقرار مسار الجذر
تتطلب ("/app/src/module/base") ؛
}) ؛
DEFINE (".." ، [..] ، وظيفة (طلب) {
// لا يوجد غموض ، تحديد المستوى الأعلى ، بالنسبة إلى تحليل المسار الأساسي الأساسي
يتطلب ("APP/SRC/MODULE/BASE") ؛
}) ؛
DEFINE (".." ، [..] ، وظيفة (طلب) {
// هناك غموض ، بالنسبة للوحدة الحالية.
// يبدو أن التبعية هنا تعتمد على `الوحدة 3` في [كتلة الكود (2)]
// ولكن إذا لم تكن الوحدة الحالية والصفحة الحالية في نفس الدليل ، فلن يتم تحليلها في "الوحدة 3"
يتطلب ("./ app/src/module/base") ؛
})
تذكير خاص: هناك ثلاثة أماكن في الوحدة النمطية حيث يجب كتابة المعرفات ، وليس هناك حاجة لاستخدام نفس السلسلة ، طالما تم تحليلها في نفس الوحدة.
تلخيص:
1. إعدادات المسارات والكمؤس تعادل فقط المتغير.
2. استخدم [شعار المستوى الأعلى] قدر الإمكان.
3. إذا لم تتمكن هذا المعرف.