플러그인

소개

플러그인은 Blockly에 기능을 추가하는 독립 실행형 코드입니다. 플러그인은 필드를 추가하고, 테마를 정의하고, 렌더기를 만드는 등의 작업을 할 수 있습니다.

플러그인의 대상 사용자는 npm을 통해 플러그인을 찾아 사용하는 개발자입니다. 플러그인 빌드에 관한 자세한 내용은 2021년 플러그인 빌드 방법 토크2021 플러그인 개요 대담을 참고하세요.

퍼스트 파티와 서드 파티의 비교

blockly-samples 저장소에 정의된 플러그인은 퍼스트 파티 플러그인입니다. 즉, Blockly팀에서 지원하고 npm의 @blockly 범위에 게시됩니다.

훌륭한 퍼스트 파티 플러그인:

  • 명확한 사용 사례가 있음
  • 범용
  • 안정적임
  • 사용이 간편합니다.

서드 파티 플러그인은 독립적으로 유지 관리 및 게시됩니다. 서드 파티 플러그인은 더 복잡하거나, 실험적이거나, 타겟팅 정확도가 높아질 수 있습니다.

예를 들어, 모터 속도 설정을 위한 필드는 많은 로봇 공학 프로젝트에서 사용될 수 있습니다. 반면 데이터베이스 스키마에서 정의한 특정 객체를 수정하는 필드는 서드 파티 플러그인에 비해 더 좋습니다.

퍼스트 파티 기준

퍼스트 파티 플러그인은 반드시 다음 요구사항을 충족해야 합니다.

  • Blockly 팀에서 예외를 승인하지 않는 한 모든 주요 플랫폼에서 작동합니다.
    • Chrome, Firefox, Safari, Edge
  • 첫 1년 동안 버그를 처리할 의향이 있는 저자가 있습니다.
  • Blockly를 monkeypatch하지 않습니다.
  • 명확하게 정의되고 문서화된 API가 있습니다.
  • Blockly팀에서 예외를 승인하지 않는 한 Blockly 핵심에서 비공개 또는 패키지 함수를 호출하지 않습니다.
    • 정의한 서브클래스에서 패키지 함수를 재정의하는 것은 허용됩니다.
    • 예외를 원하는 경우 블록리 샘플에 관한 문제에 대해 문의하세요.
  • 테스트 있음

플러그인 찾기

  • GitHub 페이지에서 퍼스트 파티 플러그인의 라이브 데모를 살펴보세요.
  • npm에서 @blockly를 검색하여 Blockly팀에서 게시한 플러그인 목록을 확인합니다.
  • GitHub에서 블록리 샘플 저장소에서 플러그인 디렉터리를 확인합니다. 각 플러그인에는 플러그인의 동작과 용도를 설명하는 README가 있습니다.

플러그인 설치

  1. 위 리소스 중 하나를 사용하여 설치할 플러그인을 찾고 README를 찾습니다.
  2. README의 설치 안내를 따릅니다. 일반적으로 npm에서 플러그인을 설치해야 합니다. 예:

    npm install @blockly/block-plus-minus --save
    

    코드로 가져옵니다. 예:

    import Blockly from 'blockly';
    import '@blockly/block-plus-minus';
    
  3. 일부 플러그인에는 플러그인 초기화 또는 등록과 같은 추가 단계가 필요할 수 있습니다. 이 단계는 README에 나와 있습니다.

플러그인 버전

블록리 샘플의 플러그인은 시맨틱 버전 관리를 따르므로 브레이킹 체인지는 새로운 메이저 버전에 적용됩니다. monkey 패치 코어에 의존하는 모든 새로운 플러그인은 semver 사양에 명시된 대로 초기 개발을 나타내는 메이저 버전이 0입니다.

대부분의 플러그인은 기본 blockly 패키지를 종속 항목이 아닌 피어링으로 포함합니다. 이는 이미 자체 애플리케이션에 Blockly를 직접 설치했다고 예상 (Blockly도 사용하지 않고 플러그인을 사용하는 것은 적합하지 않음) Blockly 버전을 직접 관리할 수 있기 때문입니다. 그러나 많은 플러그인이 Blockly의 최신 버전에 있는 새로운 API를 사용하도록 개발되므로 버전 요구사항을 알고 있어야 합니다. 플러그인의 package.json는 해당 플러그인과 호환되는 Blockly의 최소 버전을 알려줍니다. 새로운 버전의 Blockly가 필요하도록 플러그인이 업데이트되면(예: 새로운 API를 활용하기 위해) 플러그인의 주 버전이 증가합니다. 이는 브레이킹 체인지로 간주되기 때문입니다.

플러그인을 package.json에 추가하면 기본적으로 버전 앞에 캐럿을 포함합니다(예:

"@blockly/block-plus-minus": "^2.0.15"

이렇게 하면 npm이 나열된 버전 이상의 부 버전을 설치할 수 있으므로 버전 2.0.20 또는 2.1.0은 작동할 수 있지만 새로운 주 버전(예: 3.0.1)은 작동하지 않습니다. Blockly의 새 버전으로 업데이트할 때 플러그인을 새로운 메이저 버전으로 업데이트할 수 있는지 확인하는 것이 좋습니다.

npm 없이 플러그인 설치

일반적으로 업데이트를 쉽게 받으려면 npm을 사용하는 것이 좋지만, npm 없이 플러그인을 사용할 수도 있습니다.

unpkg를 사용하면 플러그인 파일을 클론하지 않고 포함할 수 있습니다. 예를 들어

<script src="https://unpkg.com/@blockly/block-plus-minus"></script>

또는 blockly-samples 저장소를 클론하고 Blockly를 클론한 경우와 비슷한 방식으로 파일을 로컬에서 포함할 수 있습니다. 하지만 가능한 경우 패키지 관리자를 사용하는 것이 좋습니다. 패키지 관리자를 사용하면 플러그인의 최신 기능과 버그 수정을 계속 확인하는 데 도움이 됩니다.

이 메서드를 사용해도 플러그인의 리드미에 나열된 초기화 또는 등록 단계를 계속 수행해야 합니다.