npm 명령에 인수 전달

많은 경우에 우리는 특정 작업을 자동화해야 하는 상황에 처하게 됩니다. npm은 이러한 작업을 훨씬 쉽게 만들어주는 사용자 지정 명령을 생성할 수 있는 옵션을 제공합니다. 유일한 문제는 "스팸"이 되기 시작할 때 매우 많은 양의 명령으로 인해 package.json가 매우 커지고 확장되지 않는다는 것입니다.

이 예에서는 ts-node 에 의해 실행이 보장되는 typescript를 사용하지만 기본 JavaScript를 사용하여 명령/스크립트를 생성하는 것을 막지는 않습니다.

구현



우선, 다음 예제와 같이 프로젝트에 ts-node를 설치해 보겠습니다.

npm i ts-node --save-dev

package.json로 이동하여 다음 예와 같이 원하는 이름으로 npm 명령을 생성합니다.

"scripts": {
    "example": "ts-node src/scripts/hello.ts"
}


이제 패치src/scriptshello.ts라는 파일을 콘텐츠로 생성합니다.

#! /usr/bin/env node

const args = process.argv.slice(2)

slice(2)는 명령 실행 인수를 제거하고 실제로 코드를 실행 중인 사용자가 전달한 인수만 가져옵니다.

이제 args에는 전달된 모든 인수가 포함되며 이를 사용하여 무엇이든 할 수 있습니다!

지금은?



이러한 인수를 사용하여 예제와 같은 새 터미널 명령을 호출할 수도 있습니다.

#! /usr/bin/env node

const args = process.argv.slice(2);
const echo = spawn('echo', args, { stdio: "inherit" });

echo.on('data', console.log)

좋은 웹페이지 즐겨찾기