Nodejs의 npm&package.json 소개

零下一度
풀어 주다: 2017-06-17 10:38:48
원래의
1295명이 탐색했습니다.

이 글은 Nodejs의 npm&package.json에 대한 자세한 설명을 주로 소개하고 있습니다. 편집자가 꽤 좋다고 생각해서 지금 공유하고 참고용으로 올려드리겠습니다. 에디터 따라가서 살펴볼까요

오랫동안 프론트엔드 개발자로서 회사에서 먼저 페이지를 작성하고, 그다음 프론트엔드 페이지에 데이터를 채워넣기 위해 백엔드와 협력해왔습니다. 하지만 가끔씩 할 일이 없어서 프레임워크 등을 살펴본 다음 프레임워크를 사용하여 단일 페이지 애플리케이션, 앱 등을 만들 것입니다. 이때 페이지의 데이터는 항상 가짜입니다. 데이터, 데이터 요청 부분을 수행할 수 없습니다(백엔드가 없기 때문에). 그래서 앞으로 배우게 될 웹팩, 프론트엔드 엔지니어링 등에 도움이 될 노드를 배워야 할 때라고 생각합니다.
프론트엔드로는 gulp, webpack 등의 툴을 자주 사용하기 때문에 우리가 가장 많이 보는 것은 npm과 package.json이므로 먼저 정리해 보겠습니다.

npm

Initialization


$ npm init
or
$ npm init --y
로그인 후 복사

우리는 프론트엔드 개발을 할 때 gulp, webpack 등의 빌드 도구를 자주 사용합니다. 다른 사람이 참여할 수 있도록 하려면 다음이 필요합니다. 프로젝트에 어떤 종속성이 있는지 알려준 다음 다른 사람들에게 동일한 종속성을 설치하도록 요청하세요. npm init에서 생성된 package.json은 프로젝트의 종속성을 기록하는 데 사용됩니다. 마찬가지로 종속성도 노드 개발에 사용됩니다. 패키지는 package.json에도 기록되어야 합니다.

터미널에 npm init를 입력하면 확인을 위해 package.json에 대한 다양한 정보를 묻는 메시지가 표시됩니다. 모두 기본값을 사용한다면 ​​ 터미널에서 직접 npm init --y를 입력하면 package.json을 빠르게 생성할 수 있습니다.

종속성 패키지 설치


$ npm install <package name> <package name> ...

$ npm install <package name> -g

$ npm install <package name> --save

$ npm install <package name> --save-dev

$ npm install <pacakage name> --O //--save-optional -B: --save-bundle -E: --save-exact
로그인 후 복사

npm install <package name> -g 는 글로벌 설치를 의미합니다. 글로벌 모드는 모듈 설치 패키지를 글로벌로 설치하지 않는다는 점에 유의하세요. 패키지의 의미는 require

()를 통해 어디서나 참조할 수 있다는 의미는 아니며, -g 이는 전역적으로 사용 가능한 실행 명령으로 패키지를 설치한다는 의미입니다. 이는 -g를 통해 설치된 모든 패키지(gulp, webpack 등)를 터미널에서 명령 모드로 실행할 수 있음을 의미합니다. npm install <package name> -g 表示全局安装,需要注意的是全局模式并不是将一个模块安装包安装为一个全局包的意思,它并不意味着可以从任何地方通过require()来引用,-g的含义是将一个包安装为全局可用的可执行命令。这意味着,所有通过-g安装的包都可以在终端以命令方式运行,例如gulp,webpack等。

--save--save-dev的区别在于前者是生产环境中项目运行需要的依赖,安装后被记录在package.json中的dependencies关键字下;而后者是开发时候需要的依赖,安装后被记录在devDependencies关键字下。

同样--O/B/E分别会被记录到对应的关键字下。

更新依赖包


$ npm update

$ npm update -g

$ npm outdated

$ npm outdated -g
로그인 후 복사

在项目目录下运行npm update可以升级项目中所用依赖到最新版本,而npm update -g则可以升级全局安装的依赖包到最新版。

npm outdated用于检查模块是否过时并列出。

卸载依赖


$ npm uninstall <package name> <package name> ...

$ npm uninstall <package name> -g

$ npm uninstall <package name> --save

$ npm uninstall <package name> --save-dev
로그인 후 복사

使用npm uninstall可以卸载依赖,但是卸载后,在package.json中的纪录并不会被删除,要想在卸载依赖的同时删除在package.json中的纪录,需要在卸载的时候使用安装时的所有的选项,例如,如果安装时候使用了npm install <package name> --save则卸载的时候,同样使用npm uninstall <pacakage name> --save,而如果使用了--save-dev,卸载时候也需要加相同的选项。

使用自定义npm命令

在package.json中,有一个scripts关键字,只需要在该关键字内写入自定义命令以及对应执行的实际命令即可。


"scripts":{
  "test": "nonde ./test.js",
  "dev": "gulp --gulpfile gulpfile-dev.js",
  "build": "gulp --gulpfile gulpfile-build.js"
}
로그인 후 복사

上面的配置中,只要我们在终端运行npm dev就是运行了gulp --gulpfile gulpfile-dev.js,这样就省去了我们在终端输入很长的一段命令,非常方便。

其他

npm view <pacakage name>可以查看包的package.json文件,如果只是看包的某个特性,在后面加上相应的key即可,例如npm v zepto version就是查看当前安装的zepto的版本,v是view的简写。

npm ls可以分析出当前当前项目下能够通过模块路径找到的所有包,并生成依赖树。

npm doc <package name>可以打开该依赖包的官网,其实就是打开了package.json中的homepage。

package.json文件

在运行npm init后会生成package.json文件,该文件用于记录项目中所用到的依赖以及项目的配置信息(比如名称、版本、许可证等)。npm install--save--save-dev의 차이점은 전자는 프로덕션 환경에서 프로젝트를 실행하는 데 필요한 종속성입니다. 설치 후 package.json의 종속성 키워드. 후자는 개발 중에 필요한 종속성이며 설치 후 devDependency 키워드 아래에 기록됩니다.

마찬가지로 --O/B/E도 해당 키워드에 각각 기록됩니다. 🎜🎜🎜종속성 패키지 업데이트🎜🎜🎜🎜🎜
{
  "name": "project",
  "version": "1.0.0",
  "author": "张三",
  "description": "第一个node.js程序",
  "keywords":["node.js","javascript"],
  "repository": {
    "type": "git",
    "url": "https://path/to/url"
  },
  "license":"MIT",
  "engines": {"node": "0.10.x"},
  "bugs":{"url":"http://path/to/bug","email":"bug@example.com"},
  "contributors":[{"name":"李四","email":"lisi@example.com"}],
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "express": "latest",
    "mongoose": "~3.8.3"
  },
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-concat": "~0.3.0"
  }
}
로그인 후 복사
로그인 후 복사
🎜프로젝트 디렉토리에서 npm update를 실행하여 프로젝트에 사용된 종속성을 최신 버전으로 업그레이드하고, npm update -g</ code>는 전역적으로 설치된 종속성 패키지를 최신 버전으로 업그레이드할 수 있습니다. 🎜🎜<code>npm outdated는 모듈이 오래된지 확인하고 나열하는 데 사용됩니다. 🎜🎜🎜Uninstall dependency🎜🎜🎜🎜🎜
"scripts":{

  “install”:"install.js",

  "test":"test.js"

}
로그인 후 복사
로그인 후 복사
🎜npm uninstall을 사용하여 종속성을 제거하지만 제거 후에 package.json의 기록은 삭제되지 않습니다. 종속성을 동시에 제거하려면 삭제하세요. package.json에 기록되어 있으면 제거할 때 설치 중에 모든 옵션을 사용해야 합니다. 예를 들어 설치 중에 npm install npm uninstall <pacakage name> --save, --save-dev를 사용하는 경우 제거 시에도 동일한 옵션을 추가해야 합니다. 🎜🎜🎜커스텀 npm 명령어 사용🎜🎜🎜 package.json에는 scripts 키워드가 있는데, 그 키워드에 커스텀 명령어와 실행할 실제 명령어만 작성하면 됩니다. 🎜🎜🎜🎜rrreee🎜위 구성에서는 터미널에서 npm dev를 실행하는 동안 gulp --gulpfile gulpfile-dev.js를 실행하므로 터미널에 긴 명령을 입력할 필요가 없습니다. 매우 편리합니다. 🎜🎜🎜Others🎜🎜🎜npm view <pacakage name>패키지의 package.json 파일을 볼 수 있습니다. 패키지의 특정 기능만 보려면 해당 항목을 추가하면 됩니다. 예를 들어 npm v zepto version은 현재 설치된 zepto 버전을 보는 것입니다. v는 view의 약어입니다. 🎜🎜npm ls는 현재 프로젝트의 모듈 경로를 통해 찾을 수 있는 모든 패키지를 분석하고 종속성 트리를 생성할 수 있습니다. 🎜🎜npm doc <패키지 이름>은 종속 패키지의 공식 웹사이트를 열 수 있으며 실제로는 package.json에서 홈페이지가 열립니다. 🎜🎜🎜🎜package.json 파일🎜🎜🎜🎜🎜npm init을 실행하면 package.json 파일이 생성됩니다. 이 파일은 프로젝트에서 사용되는 종속성 및 프로젝트 구성을 기록하는 데 사용됩니다. 정보(예: 이름, 버전, 라이센스 등). npm install 명령은 이 🎜구성 파일🎜을 기반으로 프로젝트 운영 및 개발에 필요한 종속성을 자동으로 다운로드합니다. 🎜

一个比较完整的package.json文件如下:


{
  "name": "project",
  "version": "1.0.0",
  "author": "张三",
  "description": "第一个node.js程序",
  "keywords":["node.js","javascript"],
  "repository": {
    "type": "git",
    "url": "https://path/to/url"
  },
  "license":"MIT",
  "engines": {"node": "0.10.x"},
  "bugs":{"url":"http://path/to/bug","email":"bug@example.com"},
  "contributors":[{"name":"李四","email":"lisi@example.com"}],
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "express": "latest",
    "mongoose": "~3.8.3"
  },
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-concat": "~0.3.0"
  }
}
로그인 후 복사
로그인 후 복사

在package.json中一些关键字的含义:

1.name:包名

2.version:版本号

3.description:包的描述

4.homepage:包的官网url

5.autor:包的作者名字

6.contributors:包的其他贡献者

7.dependencies:依赖包的列表,使用npm install可以安装依赖包到node_medule目录下

8.repository:包代码存放的地方,可以是git或者svn

9.keywords:关键字

10.scripts:脚本说明对象。它主要被包管理器用来安装、编译、测试和卸载包,示例如下:


"scripts":{

  “install”:"install.js",

  "test":"test.js"

}
로그인 후 복사
로그인 후 복사

11.main:模块引入方法require()在引入包时,会优先检查这个字段,并将其作为包中其余模块的入口,如果该字段不存在,则node会检查目录下的index.js,index.node,index.json作为默认入口。

12.devDependencies:一些模块只在开发时需要依赖,配置这个属性,可以提示包的后续开发者安装依赖包

위 내용은 Nodejs의 npm&package.json 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿