NodeJS 및 npm을 사용하여 CLI 도구 만들기(2부)
6498 단어 nodenpmtypescriptjavascript
npm 및 NodeJS로 CLI 도구를 만들기 위한 최소한의 요구 사항에 대해 이야기했습니다.
요약하면 우리의 목표는 두 개의 파일을 갖는 것입니다.
package.json
, "name"
, "bin"
및 "version"
를 포함하는 "fields"
. path/to/bin/index.js
("shebang"노드를 포함해야 함)이 블로그 게시물에서는 웹팩이나 롤업과 같은 모든 종류의 번들러 설정에 대한 걱정 없이 최신ECMAScript 기능을 사용하여 빠르게 시작하고 플랫폼 간에 100% 호환되도록 만드는 방법에 대해 이야기하고 싶습니다.
어떻게?
타입스크립트 사용하기!
TypeScript를 사용하면 코드를 JavaScript "바이너리"( not really a binary )로 묶고 최신ECMAScript 기능에 액세스할 수 있으며 다른 개발자가 우리 도구로 쉽게 작업할 수 있도록 유형을 내보낼 수 있습니다.
먼저 유형 및 빌드 스크립트를 포함하도록
package.json
를 수정합니다(Node CLI 최소 실행 가능 제품 참조)../package.json
{
"name": "cli-tool",
"version": "1.0.0",
"fields": ["./dist/"],
"bin": "./dist/index.js",
+ "types": "./dist/index.d.ts",
+ "script": {
+ "build": "rm -rf dist && tsc index.ts --declaration --allowJs --outDir dist"
+ }
}
둘째, 소스 코드가 포함된
index.ts
파일을 만듭니다../index.ts
#!/usr/bin/env node
export default function ourTool(options: { message: string }) {
console.log(`Hello ${options.message}`);
}
if (require.main === module) {
// run directly from the command line as in "node xxx.js"
const program = require("commander");
const defaults = { message: "World" };
program
.version("0.1.0")
.option("-m, --message [value]", "Message", defaults.message)
.parse(process.argv);
const options = program.opts();
ourTool(options);
} else {
// probably loaded by as a module or something else.
}
require.main === module
를 사용하여 스크립트가 명령으로 실행되고 있는지 감지하고 그렇지 않으면 모듈로 가져오고 있다고 가정합니다.또한 CLI 도구의 동작을 쉽게 정의하는 데 도움이 되도록
commander
을 사용하고 있습니다.용법
이제 다음과 같이 도구를 빌드하고 실행할 수 있습니다.
$ npm run build
$ node ./dist/index.js
https://www.npmjs.com/에 게시하고 설치하여
npx
와 함께 사용할 수도 있습니다.$ npm i -g cli-tool
$ cli-tool --version
0.1.0
$ cli-tool
Hello World
$ cli-tool -m Pablo
Hello Pablo
$ npx cli-tool --help
Usage: cli-tool [options]
Options:
-V, --version output the version number
-m, --message [value] Message (default: "World")
-h, --help output usage information
결론 / 다음은?
단일 도구(예: TypeScript)를 사용하여 MVP를 만들고 우리를 설정하고 실행할 수 있다는 것은 파워 개발자에게 필수적이며 과소평가되었습니다.
또한 마법(Babel, Webpack, Rollup 등)을 피하고 컴파일러를 사용하여 코드를 묶는 데에만 집중하기 때문에 이제 NodeJS가 작동하는 데 필요한 기본 요소를 이해하기가 더 쉬워졌습니다. 이는 초보 NodeJS 개발자에게 매우 유용합니다.
Reference
이 문제에 관하여(NodeJS 및 npm을 사용하여 CLI 도구 만들기(2부)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pgarciacamou/creating-a-cli-tool-using-nodejs-and-npm-part-2-8h7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)