一个伪前端眼中的 npm

作者 江辉 日期 2017-07-11
一个伪前端眼中的 npm

一、什么 npm ?

个人认为是:“node package manage” Node.js 包管理工具。类似于 Maven,方便对包进行管理。譬如:保证包能正常安装、升级、保证包之间的依赖等。

二、如何安装或升级 npm

2.1 安装 node.js 之后会有npm

详细 Node.js 安装过程见 http://www.runoob.com/nodejs/nodejs-install-setup.html

测试是否安装成功,运行 cmd

node -v

2.2 升级 npm

npm install npm@latest -g

三、npm 切换源

为了更好的下载包。推荐是用阿里云镜像

你可以使用我们定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

npm install -g cnpm --registry=https://registry.npm.taobao.org

也可以直接将 npm 源切换到 阿里云npm 镜像

npm config set registry https://registry.npm.taobao.org
# 配置后可通过下面方式来验证是否成功
npm config get registry

四、npm 包管理

4.1分清全局安装与本地安装

  • 全局安装 npm install 包名 -g
  • 默认安装 npm install 包名

两者的区别 加-g ,我可以再任何文件夹下使用引入的包 如:gulp -v

4.2安装 npm install

基础用法

npm install (with no args, in package dir)
npm install [<@scope>/]<name>
npm install [<@scope>/]<name>@<tag>
npm install [<@scope>/]<name>@<version>
npm install [<@scope>/]<name>@<version range>
npm install <tarball file>
npm install <tarball url>
npm install <folder>
alias: npm i
common options: [-S|--save|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [--dry-run]

默认安装,会安装最新版本的包

npm install gulp

安装指定版本

npm install gulp@3.9.1

注意点:

  • npm install gulp --save-dev 或 npm install gulp -D -D, –save-dev 安装包信息将加入到devDependencies(开发阶段的依赖),所以开发阶段一般使用它
  • npm install gulp --save 或 npm install gulp -S -S, –save 安装包信息将加入到dependencies(生产阶段的依赖)

4.3卸载 npm uninstall

npm uninstall [<@scope>/]<pkg>[@<version>]... [-S|--save|-D|--save-dev|-O|--save-optional]

4.4更新 npm update

npm update [-g] [<pkg>...]

4.5查看过时包 npm outdated

npm outdated [[<@scope>/]<pkg> ...]

此命令会列出所有已经过时的包,可以及时进行包的更新

4.6查看安装的模块 npm ls

基础语法

npm ls [[<@scope>/]<pkg> ...]
aliases: list, la, ll

查看全局安装的模块及依赖

npm ls -g

4.7初始化项目 npm init

安装包的信息会保持到项目的 package.json 文件中,以便后续的其它的项目开发或者他人合作使用,也说 package.json 在项目中是必不可少的。

npm init [-f|--force|-y|--yes]

4.8 package.json 介绍

{
"name": "hexo-site",
"version": "0.0.0",
"private": true,
"description": "demo",
"author": {
"name": "jianghui",
"email": ""
},
"contributors": [
{
"name": "jianghui",
"email": ""
}
],
"license": "MIT",
"homepage": "http://jianghui.xyz",
"hexo": {
"version": "3.3.1"
},
"dependencies": {
"hexo": "^3.2.0",
"hexo-deployer-git": "^0.2.0",
"hexo-generator-archive": "^0.1.4",
"hexo-generator-category": "^0.1.3",
"hexo-generator-index": "^0.2.0",
"hexo-generator-mypage": "^1.0.1",
"hexo-generator-tag": "^0.2.0",
"hexo-renderer-ejs": "^0.2.0",
"hexo-renderer-marked": "^0.2.10",
"hexo-renderer-stylus": "^0.3.1",
"hexo-server": "^0.2.0"
}
}
  • name - 包名。

  • version - 包的版本号。

  • description - 包的描述。

  • homepage - 包的官网 url 。

  • author - 包的作者姓名。

  • contributors - 包的其他贡献者姓名。

  • dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。

  • repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。