"노트 내보내기"는 어디로 갑니까?
이 가이드는 작은 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기능 추적 도구입니다.
검사CSVwriter
팔로우
notes:export그 담당자에게 어떤 입력들이 CSV 작성자,그리고 파일 작성이 실패하면 어떻게됩니까?
원본 위치를 사용하여 해당 세부 정보를 검사합니다. 계산된 채널 이름 및 모호한 처리기는 해결되지 않은 상태로 유지될 수 있으며 런타임 관찰을 통해 이를 조사하는 또 다른 방법을 제공합니다.
- 팔로우 Notion클립보드 브리지의 패키지된 제품에 동일한 접근 방식을 적용합니다. Electron 앱
- 브라우저 내보내기 관찰실제 클릭을 캡처하고 만드는 요청을 참조하십시오.
- 기본 함수 따르기기능이 네이티브 코드에 의존 할 때 바이너리로 계속 진행하십시오.