템플릿을 넣으면 CLI 명령에 추가되어 플래그를 전달하거나 파일을 만드는 느낌 도구

4722 단어 자바스크립트cli
새로 만들 때마다 먼저 이것저것 설정파일( *.json 이 근처 역시 CLI로 만들면 즐거운 생각했기 때문에, 모자

흐름


  • .*rc 또는 ./.moza/ 디렉토리에 ~/.config/moza/ ( handlebars ) 파일을 넣습니다
  • 그 머리에 프론트 마터를 기술 ( yargsoptions 형식)
  • 그 아래에 handlebars 에서 적당히 템플릿을 작성
  • 명령 실행으로 템플릿을 확장하여 파일 만들기

  • 프로젝트 고유의 것은 *.hbs

    인스트


    npm i -g moza
    # yarn global add moza
    

    실행.
    moza
    # npx moza
    



    이런 파일들을 ./.moza/*.hbs 아래에 둔다.

    tsconfig.hbs
    ---
    CONFIG:
      description: description
      usage: usage
    NOTE: |
      `preact`や`ink`を使う場合は、`--jsx-factory`に`h`を指定
    lib:
      alias: l
      default:
        - es2016
        - es2017
        - es2017.object
    target: es6
    jsx:
      default: false
      type: boolean
    jsxFactory:
      default: React.Component
      type: string
      choices:
        - React.Component
        - h
    module: commonjs
    ---
    
    {
      "compilerOptions": {
        "target": "{{target}}",
        "module": "{{module}}",
        "lib": [
          {{#each lib}}
          "{{this}}"{{#unless @last}},{{/unless}}
          {{/each}}
        ],
        {{#if jsx}}
        "jsx": "React",
        "jsxFactory": "{{jsxFactory}}",
        {{/if}}
        "strict": true,
        "sourceMap": true
      },
      include: [
        "./src/**/*.ts",
        "./src/**/*.tsx"
      ]
    }
    

    그러면 ./.moza/라는 파일이었으므로 tsconfig.hbs라는 명령을 사용할 수 있습니다. 또 tsconfigCONFIG 이외는 KebabCase 로 변환되어 플래그로 건네줄 수 있게 되어 있습니다.
    moza --help
    #
    # Commands:
    #   tsconfig
    #
    
    moza tsconfig --help
    #
    # Variables:
    #   --lib, -l                       [default: ["es2016","es2017","es2017.object"]]
    #   --target                                                      [default: "es6"]
    #   --jsx                                               [boolean] [default: false]
    #   --jsx-factory
    #          [string] [choices: "React.Component", "h"] [default: "React.Component"]
    #   --module                                                 [default: "commonjs"]
    #
    

  • NOTECONFIG.description 명령 설명.
  • tsconfigCONFIG.usage 때로 표시되는 사용법.
  • --helpNOTE 같았을 때 표시할 수 있는 텍스트. ( moza note tsconfig 같은 것을 쓰는 가정에서 ...)

  • 그리고는 npm i ............... 같은 느낌으로 생성뿐입니다.

    하나의 주의로, moza tsconfig [flags] <dest-path> 의 플래그가 있는 경우는 type: array 의 전에 <dest-path> 가 필요합니다.
    moza foo --value 0 --value 1 --value 2 -- foo.json
    



    이상!

    기타



    원격으로 템플릿 파일을 가져옵니다.



    예를 들면 gist라든지에서.
    moza add <url> --output foo.hbs # ダウンロードして ./.moza/foo.hbs へ作成
    moza add -g <url> -o foo.hbs    # 〃 ~/.config/moza/foo.hbs
    

    가지고 있는 템플릿 파일 목록 보기



    경로도 표시되므로 삭제할 때라든가.
    moza ls    # ./.moza/*
    moza ls -g # ~/.config/moza/*
    

    노트 표시


    moza note <command>
    

    좋은 웹페이지 즐겨찾기