Node.js 패키지의 프로젝트 디렉터리와 NPM 패키지 Manager_node.js 사용에 대한 자세한 설명
프로젝트 디렉토리
위의 지식을 이해했다면 이제 프로젝트 디렉토리를 완전히 계획할 수 있습니다. 명령줄 프로그램 작성을 예로 들어 보겠습니다. 일반적으로 우리는 명령줄 모드와 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')만 추가하면 됩니다.
위 명령은 기본적으로 최신 버전의 타사 패키지를 다운로드합니다. 특정 버전을 다운로드하려면 패키지 이름 뒤에 @
$ 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
@ 을 사용하여 게시한 코드 버전을 게시 취소하세요.

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.

이 기사에서는 Contrim에 의해 확보 된 백엔드와의 프론트 엔드 통합을 보여 주며 Next.js를 사용하여 기능적인 Edtech SaaS 응용 프로그램을 구축합니다. Frontend는 UI 가시성을 제어하기 위해 사용자 권한을 가져오고 API가 역할 기반을 준수하도록합니다.

JavaScript는 현대 웹 개발의 핵심 언어이며 다양성과 유연성에 널리 사용됩니다. 1) 프론트 엔드 개발 : DOM 운영 및 최신 프레임 워크 (예 : React, Vue.js, Angular)를 통해 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축합니다. 2) 서버 측 개발 : Node.js는 비 차단 I/O 모델을 사용하여 높은 동시성 및 실시간 응용 프로그램을 처리합니다. 3) 모바일 및 데스크탑 애플리케이션 개발 : 크로스 플랫폼 개발은 개발 효율을 향상시키기 위해 반응 및 전자를 통해 실현됩니다.

JavaScript의 최신 트렌드에는 Typescript의 Rise, 현대 프레임 워크 및 라이브러리의 인기 및 WebAssembly의 적용이 포함됩니다. 향후 전망은보다 강력한 유형 시스템, 서버 측 JavaScript 개발, 인공 지능 및 기계 학습의 확장, IoT 및 Edge 컴퓨팅의 잠재력을 포함합니다.

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.
