> 웹 프론트엔드 > JS 튜토리얼 > Node.js 패키지의 프로젝트 디렉터리와 NPM 패키지 Manager_node.js 사용에 대한 자세한 설명

Node.js 패키지의 프로젝트 디렉터리와 NPM 패키지 Manager_node.js 사용에 대한 자세한 설명

WBOY
풀어 주다: 2016-05-16 15:15:19
원래의
1596명이 탐색했습니다.

프로젝트 디렉토리

위의 지식을 이해했다면 이제 프로젝트 디렉토리를 완전히 계획할 수 있습니다. 명령줄 프로그램 작성을 예로 들어 보겠습니다. 일반적으로 우리는 명령줄 모드와 API 모드를 모두 제공하며 타사 패키지를 사용하여 코드를 작성합니다. 코드 외에도 완전한 프로그램에는 자체 문서와 테스트 사례도 있어야 합니다. 따라서 표준 프로젝트 디렉터리는 다음과 같습니다.

- /home/user/workspace/node-echo/  # 工程目录
  - bin/             # 存放命令行相关代码
    node-echo
  + doc/             # 存放文档
  - lib/             # 存放API相关代码
    echo.js
  - node_modules/         # 存放三方包
    + argv/
  + tests/            # 存放测试用例
  package.json          # 元数据文件
  README.md            # 说明文件
로그인 후 복사

일부 파일의 내용은 다음과 같습니다.

/* bin/node-echo */
var argv = require('argv'),
  echo = require('../lib/echo');
console.log(echo(argv.join(' ')));

/* lib/echo.js */
module.exports = function (message) {
  return message;
};

/* package.json */
{
  "name": "node-echo",
  "main": "./lib/echo.js"
}

로그인 후 복사

위의 예에서는 다양한 유형의 파일이 카테고리에 저장되고, 모듈은 node_moudles 디렉토리를 통해 타사 패키지 이름을 사용하여 직접 로드됩니다. 또한 package.json을 정의한 후 node-echo 디렉터리도 패키지로 사용할 수 있습니다.

NPM

NPM은 NodeJS와 함께 설치되는 패키지 관리 도구로 NodeJS 코드 배포의 많은 문제를 해결할 수 있습니다.

  • 사용자가 로컬 사용을 위해 NPM 서버에서 다른 사람이 작성한 타사 패키지를 다운로드할 수 있도록 허용합니다.
  • 사용자가 로컬 사용을 위해 NPM 서버에서 다른 사람이 작성한 명령줄 프로그램을 다운로드하고 설치할 수 있습니다.
  • 사용자가 다른 사람이 사용할 수 있도록 NPM 서버에 작성한 패키지나 명령줄 프로그램을 업로드할 수 있습니다.

보시다시피 NPM은 NodeJS 개발자와 사용자가 서로 소통할 수 있는 NodeJS 생태계를 구축했습니다. 다음은 이러한 세 가지 시나리오에서 NPM을 사용하는 방법을 설명합니다.

타사 패키지 다운로드
타사 패키지를 사용해야 하는 경우 먼저 어떤 패키지를 사용할 수 있는지 알아야 합니다. npmjs.org는 패키지 이름을 기준으로 검색할 수 있는 검색창을 제공하지만, 사용하려는 타사 패키지 이름이 확실하지 않은 경우 Baidu에 문의하세요. 위 예의 argv와 같은 패키지 이름을 알고 나면 프로젝트 디렉터리에서 터미널을 열고 다음 명령을 사용하여 타사 패키지를 다운로드할 수 있습니다.

$ npm install argv
...
argv@0.0.2 node_modules\argv
로그인 후 복사

다운로드 후 argv 패키지는 프로젝트 디렉터리 아래 node_modules 디렉터리에 배치되므로 타사 패키지 경로를 지정하지 않고 코드에 require('argv')만 추가하면 됩니다.

위 명령은 기본적으로 최신 버전의 타사 패키지를 다운로드합니다. 특정 버전을 다운로드하려면 패키지 이름 뒤에 @을 추가하면 됩니다. 다음 명령을 통해 argv 중 1개를 가져옵니다.

$ npm install argv@0.0.1
...
argv@0.0.1 node_modules\argv
로그인 후 복사

타사 패키지를 많이 사용하는 경우 터미널에서 하나의 명령으로 각 패키지를 설치하는 것은 너무 번거로울 것입니다. 따라서 NPM은 타사 패키지 종속성을 선언할 수 있도록 package.json의 필드를 확장했습니다. 따라서 위 예의 package.json을 다음과 같이 다시 작성할 수 있습니다.

{
  "name": "node-echo",
  "main": "./lib/echo.js",
  "dependencies": {
    "argv": "0.0.2"
  }
}
로그인 후 복사

이런 방식으로 처리한 후 npm install 명령을 사용하여 프로젝트 디렉터리에 타사 패키지를 일괄 설치할 수 있습니다. 더 중요한 것은 향후 node-echo도 NPM 서버에 업로드되고 다른 사람들이 이 패키지를 다운로드할 때 NPM은 패키지에 선언된 타사 패키지 종속성을 기반으로 추가 종속 타사 패키지를 자동으로 다운로드한다는 것입니다. 예를 들어 npm install node-echo 명령을 사용하면 NPM은 자동으로 다음 디렉터리 구조를 생성합니다.

- project/
  - node_modules/
    - node-echo/
      - node_modules/
        + argv/
      ...
  ...
로그인 후 복사

이런 방식으로 사용자는 직접 사용하는 타사 패키지에만 신경 쓰면 되며 모든 패키지 자체의 종속성을 해결할 필요는 없습니다.

명령줄 프로그램 설치
NPM 서비스에서 명령줄 프로그램을 다운로드하고 설치하는 방법은 타사 패키지와 유사합니다. 예를 들어 위 예의 node-echo는 명령줄 사용 방법을 제공합니다. node-echo가 관련 package.json 필드를 구성한 경우 사용자는 다음 명령만 사용하여 프로그램을 설치하면 됩니다.

$ npm install node-echo -g
로그인 후 복사

파라미터의 -g는 전역 설치를 의미하므로 node-echo는 기본적으로 다음 위치에 설치되며, NPM은 Linux 시스템에서 필요한 소프트링크 파일이나 Windows 시스템에서 필요한 .cmd 파일을 자동으로 생성합니다.

- /usr/local/        # Linux系统下
  - lib/node_modules/
    + node-echo/
    ...
  - bin/
    node-echo
    ...
  ...

- %APPDATA%\npm\      # Windows系统下
  - node_modules\
    + node-echo\
    ...
  node-echo.cmd
  ...

로그인 후 복사

우편번호
처음으로 코드를 게시하려면 NPM을 사용하기 전에 계정을 등록해야 합니다. 터미널에서 npm adduser를 실행한 후 프롬프트를 따릅니다. 계정이 설정된 후에는 package.json 파일을 편집하고 NPM에 대한 필수 필드를 추가해야 합니다. 위의 node-echo 예시에 따라 package.json에 필요한 필드는 다음과 같습니다.

{
  "name": "node-echo",      # 包名,在NPM服务器上须要保持唯一
  "version": "1.0.0",      # 当前版本号
  "dependencies": {       # 三方包依赖,需要指定包名和版本号
    "argv": "0.0.2"
   },
  "main": "./lib/echo.js",    # 入口模块位置
  "bin" : {
    "node-echo": "./bin/node-echo"   # 命令行程序名和主模块位置
  }
}
로그인 후 복사

그런 다음 package.json이 있는 디렉터리에서 npm 게시를 실행하여 코드를 게시할 수 있습니다.

버전 번호
NPM을 사용하여 코드를 다운로드하고 게시하면 버전 번호를 알게 됩니다. NPM은 의미론적 버전 번호를 사용하여 코드를 관리합니다.

의미론적 버전 번호는 X.Y.Z의 세 자리로 구분되며 각각 메이저 버전 번호, 마이너 버전 번호, 패치 버전 번호를 나타냅니다. 코드가 변경되면 다음 원칙에 따라 버전 번호가 업데이트됩니다.

+ 버그만 수정했다면 Z비트 업데이트가 필요합니다.

+ 새로운 기능이 추가되었지만 이전 버전과 호환되는 경우 Y 비트를 업데이트해야 합니다.

+ 큰 변경 사항이 있는 경우 이전 버전과 호환되지 않으며 X 비트를 업데이트해야 합니다.
버전 번호에 이러한 보장이 있으면 타사 패키지 종속성을 선언할 때 고정된 버전 번호에 의존하는 것 외에도 특정 버전 번호 범위에 의존할 수도 있습니다. 예를 들어, "argv": "0.0.x"는 0.0.x 시리즈의 최신 버전 argv에 의존한다는 의미입니다. NPM에서 지원하는 모든 버전 번호 범위 지정 방법은 공식 문서를 참조하세요.

영리하게 행동하세요
이 장에서 소개한 부분 외에도 NPM은 많은 기능을 제공하며 package.json에는 기타 유용한 필드가 많이 있습니다. npmjs.org/doc/에서 공식 문서를 보는 것 외에도 다음은 몇 가지 일반적인 NPM 명령입니다.

NPM은 설치, 게시 등 다양한 명령을 제공합니다. 모든 명령을 보려면 npm help를 사용하세요.

  • npm help install과 같은 명령에 대한 자세한 도움말을 보려면 npm help를 사용하세요.
  • package.json이 있는 디렉터리에서 npm install . -g를 사용하여 현재 명령줄 프로그램을 로컬에 먼저 설치하세요. 이는 출시 전 로컬 테스트에 사용할 수 있습니다.
  • npm update 를 사용하여 현재 디렉터리의 node_modules 하위 디렉터리에 있는 해당 모듈을 최신 버전으로 업데이트하세요.
  • npm update -g를 사용하여 전역적으로 설치된 해당 명령줄 프로그램을 최신 버전으로 업데이트하세요.
  • npm 캐시 클리어를 사용하면 동일한 버전 번호를 사용하여 새 버전의 코드를 릴리스하는 사람들을 처리하는 데 사용되는 NPM 로컬 캐시를 지울 수 있습니다.
  • npm unpublish @을 사용하여 게시한 코드 버전을 게시 취소하세요.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿