Node for Max에서 Type Script 사용

7528 단어 Node.jsTypeScriptMax8

만든 물건


Node for Max를 위한 간단한 Type Script 개발 환경을 만들었습니다.
편집 프로그램

Max API의 유형 정의가 유효하여 편안하게 개발할 수 있다.
소스 코드: github

기능


ts-node 모드


CLI 옵션은 최대 8.0.4 업데이트 에서 전달될 수 있습니다.
이것은 node의 node.script 옵션을 사용할 수 있기 때문에 ts-node/register 을 사용할 수 있습니다.
즉, 토하지 않고-r TypeScript를 실행할 수도 있고 REPL을 실행할 수도 있다. 파일을 토할 시간이 없기 때문에 작은 프로젝트라면 실행하는 데 걸리는 시간도 js와 차이가 많지 않고 바삭바삭하다.

tsc 모드


tsc를 사용하면 변압기를 정상적으로 토할 수 있는 파일도 만들기 때문에 ts-node가 싫은 사람은 저쪽에 있습니다.

보일러판의 구조(생략판)


├── @types
│ └── max-api.d.ts<--MaxAPI 유형 정의 파일
├── index.ts<--.js의 입구점
--lib/<--tsc 후 여기 들어오기
├── main.maxpat<--Max 열기
├── node_modules
├── package.json
├── run-transpiled.js<--ts-nodeモード 시 입구점
└── tsconfig.json

보일러판 정보


주요 Max 파일은 이렇습니다.

상응하는 코드
index.ts
import * as MaxAPI from 'max-api'
import * as fs from 'fs'
import { say } from 'cowsay'
import { Log } from './utils'

enum actionTypes {
  LIST_FILES = 'list-files',
  SAY = 'say'
}

MaxAPI.addHandler(actionTypes.LIST_FILES, () => {
  fs.readdir(process.cwd(), (err, files) => {
    if (err) {
      MaxAPI.post(err.message, "error")
    }
    const text = say({
      text: 'Node for Max is Awesome!'
    });

    Log(...files)
    MaxAPI.outlet(...files, text)
  })
})

MaxAPI.addHandler(actionTypes.SAY, (...whatever: string[]) => {
  const text = say({
    text: whatever.join(' ')
  })
  Log(text)
  MaxAPI.outlet(text)
})

이런 느낌.(먼저 샘플은cowsay라고 말하지 마세요.)
그럼,umenu에서 사용tscモード할지 사용ts-node을 선택합니다

이런 느낌으로 전환됩니다.tscnode.script에node에게 건네준다는 것은
node -r ts-node/register index.ts
그러니까@options 지정한 라이브러리를 실행하기 전에require 옵션)-r의 경우 오른쪽tscモード을 수행합니다(주의※ js).
이건 단순히
run-transpiled.js
/**
 * @description This file should only be called after source code is transpiled.
 * @author Yuichi Yogo
 */
require('./lib/index')
node.script run-transpiled.js에서 tsc를 통해 전송된 js 파일이 들어가기를 기대하기 때문에 (그곳의 동기화 처리는 Max 패치 옆에 쓰여 있음) 간단하게 리퀘스트만 진행합니다.

총결산


이번에 보일러판을 만들 때 Cylcling에publish Max API의 금형 정의 파일이 없어서 제가 준비했습니다.
불편하니까 cycling'74를 부탁합니다.(대응할 수 있을지 모르겠다)
그중lib/에서 최신 모델을 얻을 수 있었으면 좋겠어요!

좋은 웹페이지 즐겨찾기