@kintone/rest-api-client를 GitHub에서 설치

소개


@kintone/rest-api-client 의 개발중의 기능을, GitHub로부터 인스톨 해 빨리 사용해 보았습니다.
일반적으로 NPM 패키지를 GitHub에서 설치할 때에 비해 특수한 방법이 필요했기 때문에 메모.

주의


  • Webpack 빌드 환경이 있다고 가정합니다
  • 개발중을 마음대로 사용하는 경우, 심각한 버그가 있을 가능성도 있으므로 자기 책임으로!

  • 디렉토리 구조



    rest-api-client는 Git 저장소로서 특별한 형태를 가지고 있습니다.

    htps : // 기주 b. 코 m / 킨토네 / js - sdk
    @kintone/js-sdk라는 리포지토리에 하위 디렉토리로 rest-api-client가 있습니다.
    htps : // 기주 b. 코 m / 킨 토네 / js - sdk / t ree / ma s r / pa c ga s / re st - ap - c peen t

    NPM의 세계에서는 @kintone/rest-api-client 라는 단독 패키지 취급입니다만, Git의 세계에서는 단순한 서브 디렉토리.
    (어째서 이런 이상한 구성인가는 수수께끼. 이런 NPM 디자인 패턴도 있는 것인가? 누군가 알고 있으면 가르쳐 주세요)
    이런 패턴을 「모노레포」라고 하는 것 같네요. 저도 최근 어느 프로젝트에서 모노레포를 채용해 보았습니다. 이 기사를 이해하기 쉽습니다.
    lerna를 사용하여 npm 프로젝트를 모노 리포팅

    그래서 GitHub에서 이런 식으로 설치하려고해도 오류가 발생합니다.
    yarn add https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client
    

    방법 1 (Git의 submodule로 사용)



    NPM 대신 Git의 submodule로 설치합니다.
    mkdir vendor
    cd vendor
    git submodule add https://github.com/kintone/js-sdk
    

    직접 빌드
    cd js-sdk/packages/rest-api-client/
    yarn install
    yarn build
    

    이런 식으로 lib 폴더가 있으면 빌드 성공.
    $ ls lib
    KintoneAllRecordsError.d.ts       KintoneRestAPIClient.js   __tests__/  url.d.ts
    KintoneAllRecordsError.js         KintoneRestAPIError.d.ts  client/     url.js
    KintoneRequestConfigBuilder.d.ts  KintoneRestAPIError.js    http/
    KintoneRequestConfigBuilder.js    KintoneTypes.d.ts         index.d.ts
    KintoneRestAPIClient.d.ts         KintoneTypes.js           index.js
    

    사용할 때는 이런 식으로 상대 경로로 js-sdk/packages/rest-api-clientimport 합니다.
    import { KintoneRestAPIClient } from '../vendor/js-sdk/packages/rest-api-client'
    

    이제 2020 년 3 월 16 일에 릴리스되지 않은 addAllRecords 함수도 사용할 수 있습니다.


    방법 2 (NPM 모듈로 GitHub에서 설치)



    처음 이쪽의 방법 생각하고 있었습니다만, 방법 1이 좋다고 생각해 그만두었습니다.

    우선, Git 리포지토리 단위로 js-sdk 마다 인스톨 해 버린다.
    yarn add https://github.com/kintone/js-sdk
    

    그대로는 사용할 수 없으므로 해당 디렉토리로 이동하여 스스로 빌드
    cd node_modules/@kintone/js-sdk/packages/rest-api-client/
    yarn install
    yarn build
    

    사용할 때는 이런 식으로 @kintone/js-sdk 부하의 디렉토리를 따라 import 합니다.
    import { KintoneRestAPIClient } from '@kintone/js-sdk/packages/rest-api-client/lib'
    
    rest-api-client까지 지정으로 OK라고 생각하면,rest-api-client/lib 까지 지정하지 않으면 잘 움직이지 않았습니다.

    문제점



    빌드 직후는 잘 움직이는데, 그 뒤 다른 NPM 모듈을 추가로 설치하면 모처럼 빌드했다 rest-api-client/lib 설치마다 깨끗하게 해주는군요. .

    예를 들어 .gitignore 에서 해당 폴더를 제외하지 않게 하고, lib
    일단 방법 써 둡니다만, 이런 개그같은 node_modules 써,

    .gitignore
    node_modules/*
    !/node_modules/@kintone
    /node_modules/@kintone/*
    !/node_modules/@kintone/js-sdk/
    /node_modules/@kintone/js-sdk/*
    !/node_modules/@kintone/js-sdk/packages/
    /node_modules/@kintone/js-sdk/packages/*
    !/node_modules/@kintone/js-sdk/packages/rest-api-client/
    /node_modules/@kintone/js-sdk/packages/rest-api-client/*
    !/node_modules/@kintone/js-sdk/packages/rest-api-client/.gitignore
    !/node_modules/@kintone/js-sdk/packages/rest-api-client/lib/
    

    또한 여기에서 .gitignore에서 .gitignore를 지 웁니다.

    node_modules/@kintone/js-sdk/packages/rest-api-client/.gitignore
     node_modules/
    -lib/
     esm/
     umd/
    

    음, 방법 1이 무난합니다 w

    결론



    부디도 자기 책임입니다!
    나도 정식 릴리스까지는, 제품 코드에는 사용하지 않으니까!

    좋은 웹페이지 즐겨찾기