이 프로젝트가 1등상을 받았나요? Telegram Lightweight Client Contest에서 현재 web.telegram.org/a에서 누구나 사용할 수 있는 공식 Telegram 클라이언트입니다.
원래 콘테스트 규칙에 따르면 의존성이 거의 없으며 자체 Teact 프레임워크(React 패러다임을 다시 구현함)를 완전히 기반으로 합니다. 또한 MTProto 구현으로 GramJS의 사용자 정의 버전을 사용합니다.
이 프로젝트에는 WebSocket, Web Workers 및 WebAssembly, 다단계 캐싱 및 PWA, 음성 녹음 및 미디어 스트리밍, 암호화 및 원시 바이너리 데이터 작업, 낙관적이고 진보적인 인터페이스, 복잡한 CSS/ 캔버스/SVG 애니메이션, 반응형 데이터 스트림 등.
자유롭게 탐색하고, 피드백을 제공하고, 기여해 보세요.
mv .env.example .env
npm i
my.telegram.org에서 API ID와 API 해시를 얻고 .env
파일을 채웁니다.
npm run dev
개발 서버를 시작하고 콘솔 컨텍스트에서 GramJS 작업자를 찾으세요.
전역 GramJs
변수에서 모든 생성자와 함수를 사용할 수 있습니다.
사용 가능한 모든 Telegram 요청에 액세스하려면 npm run gramjs:tl full
실행하세요.
사용 예:
await invoke ( new GramJs . help . GetAppConfig ( ) )
Electron을 사용하면 Windows, macOS 및 Linux에 설치할 수 있는 기본 애플리케이션을 구축할 수 있습니다.
npm run dev:electron
개발 모드에서 Electron을 실행하면 변경 사항을 감시하면서 3개의 프로세스인 메인(메인 Electron 프로세스), 렌더러(FE 코드) 및 Webpack for Electron(TypeScript에서 메인 Electron 프로세스 컴파일)이 동시에 시작됩니다.
npm run electron:webpack
사전 로드 기능이 포함된 Electron의 기본 프로세스 코드는 TypeScript로 작성되었으며 webpack-electron.config.js
구성을 사용하여 컴파일되어 JavaScript 코드를 생성합니다.
npm run electron:build
렌더러(FE 코드) 빌드 준비, Electron 기본 프로세스 코드 컴파일, 기본 종속성 설치 및 빌드는 패키징 또는 게시 전에 사용됩니다.
npm run electron:staging
APP_ENV
staging
으로 사용하여 dist-electron
폴더에 macOS, Windows 및 Linux용 패키지를 생성합니다(DevTools 열기 허용, 소스 맵 포함, 빌드된 JavaScript 코드 축소 안 함). 수동 배포 및 패키지 애플리케이션 테스트에 사용할 수 있습니다.
npm run electron:production
production
으로 APP_ENV
(비활성화된 DevTools, 축소된 내장 JavaScript 코드)를 사용하여 dist-electron
폴더에 macOS, Windows 및 Linux용 패키지를 생성하면 수동 배포 및 패키지 애플리케이션 테스트에 사용할 수 있습니다.
npm run deploy:electron
dist-electron
폴더에 macOS, Windows 및 Linux용 패키지를 생성하고 자동 업데이트 지원을 허용하는 GitHub에 릴리스를 게시합니다. 자세한 내용은 GitHub 릴리스 워크플로를 참조하세요.
애플리케이션 코드에 서명하려면 다음 단계를 따르세요.
/certs
폴더의 인증서를 키체인의 login
폴더에 설치하세요.Developer ID - G2
인증서를 다운로드하여 설치하세요.key > Get Info > Access Control
수행하십시오. 아래에서 귀하의 애플리케이션(Xcode)이 목록에 있는지 확인하세요. Always allow access by these applications
하고 Confirm before allowing access
켜져 있는지 확인하세요.자세한 내용은 공식 문서를 참조하세요.
애플리케이션 공증은 전자 빌더 모듈에서 자동으로 수행되며, 이를 위해서는 APPLE_ID
및 APPLE_APP_SPECIFIC_PASSWORD
환경 변수를 전달해야 합니다.
앱별 비밀번호를 얻는 방법:
새 릴리스를 게시하려면 GitHub 액세스 토큰을 .env
에 추가해야 합니다. https://github.com/settings/tokens/new로 이동하여 GitHub 액세스 토큰을 생성하세요. 액세스 토큰에는 저장소 범위/권한이 있어야 합니다. 토큰이 있으면 이를 환경 변수에 할당합니다.
# .env
GH_TOKEN="{YOUR_TOKEN_HERE}"
src/electron/config.yml
구성 파일에 구성을 게시하면 GitHub 저장소 소유자/이름을 설정할 수 있습니다.
npm run electron:publish
실행하면 새로운 초안 릴리스가 생성되고 새로 릴리스된 릴리스에 빌드 아티팩트가 업로드됩니다. 생성된 릴리스의 버전은 package.json
과 동일합니다.이 앱에서 문제를 발견하면 제안 플랫폼을 사용하여 Telegram에 알려주세요.