أين تذهب" ملاحظات التصدير"?
يستخدم هذا الدليل ملف صغير Electron التطبيق. النقر ملاحظات التصدير يدعو أبي في الصفحة ، يعبر إلى العملية الرئيسية ، ويكتب CSV. ينتشر السلوك عبر عدة ملفات.
ال CSV تصدير عبر Electron العمليات
-
العارض-التحميل المسبق
notes.exportCsv()renderer.jsيدعو أبي يتعرض من قبلpreload.js. -
بين العمليات
notes:exportيستدعي التحميل المسبق قناة التصنيف الدولي للبراءات: رسالة مسماة إلى العملية الرئيسية. -
العملية الرئيسيةمعالج تصدير
main.jsيعالج تلك القناة ويدعو CSV كاتب.
csv.js تنسيق الملاحظات → main.js يكتب downloads/notes.csv.
اسأل عن CSV تصدير
ربط وكيلك إلى REA وإعطائها دليل التطبيق أو ASAR ملف:
استخدام REA للعثور على ما يحدث عندما أقوم بتصدير الملاحظات في هذا التطبيق. أين هو CSV خلق?
مثال موجه. قم بتضمين المسار المطلق إلى مجلد التطبيق أو app.asar.
REA يقرأ ملفات التطبيق ويبني خريطة نقاط الدخول والوحدات وحدود العملية. يستخدم وكيلك هذه الخريطة لتضييق التحقيق إلى ميزة التصدير.
تتبع رمز التصدير
تستدعي الصفحة واجهة برمجة تطبيقات صغيرة
document.querySelector("#export").addEventListener("click", async () => {
const destination = await window.notes.exportCsv();
document.querySelector("#status").textContent = `Saved to ${destination}`;
});
تعرف الصفحة اسم الطريقة. يعيش التنفيذ في التحميل المسبق ، مما يعرضه للعارض.
contextBridge.exposeInMainWorld("notes", {
exportCsv: () => ipcRenderer.invoke("notes:export"),
});
REA المحاضر notes.exportCsv والقناة الحرفية notes:export. يقوم بإقران هذا الاستدعاء مع معالج المطابقة الفردي في العملية الرئيسية.
ipcMain.handle("notes:export", () => {
const destination = path.join(app.getPath("downloads"), "notes.csv");
writeFileSync(destination, toCsv(notes), "utf8");
return destination;
});
قراءة المعالج يجيب على السؤال الأصلي: csv.js تنسيق الملاحظات ، والعملية الرئيسية يكتب notes.csv في مجلد التنزيلات الخاص بالمستخدم.
{
"literal_channels": 1,
"renderer_transmissions": 1,
"main_handlers": 1,
"paired_renderer_transmissions": 1,
"ambiguous_renderer_transmissions": 0
}
سجلت بواسطة REA 4.1.0 في المثال القابل للتنزيل أدناه. تصاحب مواقع المصدر نتائج واجهة برمجة التطبيقات والقناة والمعالج.
حلل المثال بنفسك
قم بتنزيل المثال وفك ضغطه. يحتوي الأرشيف على كامل notes-example مجلد. تحليلها مع Node.js و npm; Electron ليست هناك حاجة لهذا المثال.
تصفح ملفات المصدر الستة
npx -y rea-agents@latest analyze-javascript-application \
/absolute/path/to/notes-example --json
استبدل المسار بالمجلد الذي قمت بفك ضغطه. يجب أن تجد قناة إيبك واحدة ومعالج واحد مطابقة في normalized_result.summary.ipc. مواقع المصدر في normalized_result.graph.
للتطبيق الخاص بك ، استخدم نفس الأمر مع دليله أو ASAR الطريق. يمكن للوكيل اتباع سلسلة حرفية أو اسم واجهة برمجة التطبيقات أو قناة إيبك مع REAأدوات تتبع الميزات.
فحص CSV كاتب
اتبع
notes:exportإلى معالجها. المدخلات التي تصل إلى CSV كاتب, وماذا يحدث إذا فشلت كتابة الملف?
استخدم مواقع المصدر لفحص هذه التفاصيل. يمكن أن تظل أسماء القنوات المحسوبة والمعالجات الغامضة دون حل ؛ تمنحك ملاحظات وقت التشغيل طريقة أخرى للتحقيق فيها.
- اتبع Notionجسر الحافظة تطبيق نفس النهج على حزم Electron التطبيق.
- مراقبة تصدير المتصفحالتقاط نقرة حقيقية ومعرفة أي طلب يجعل.
- اتبع وظيفة أصليةالاستمرار في ثنائي عندما تعتمد ميزة على التعليمات البرمجية الأصلية.