NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS部署上的很多问题。

测试是否安装成功,出现版本提示表示安装成功。

npm -v

NPM常用命令

官方文档:https://www.npmjs.com/package/doc

npm install <module> #安装模块
npm uninstall <module> #卸载模块
npm update <module> #更新模块
npm search <module> #搜索模块
npm init <module> #创建模块模块
npm add user #npm资源库中注册用户
npm publish #发布模块
npm help #可查看所有命令
npm help <command> #查看某条命令详细帮助
npm install . -g #可以先在本地安装当前命令行程序,可以用于发布前的本地测试
npm cache clear #清空NPM本地缓存
npm unpublish <package>@<version> #撤销发布过的某个版本

检查模块卸载是否成功:进入/node_modules/目录查看包是否还在,或者使用如下命令:

npm ls

全局安装与本地安装

npm包安装分本地安装(local)和全局安装(global),差别是带不带 -g(global).

  • 本地安装:将安装包放在./node_modules下;可以通过require()引入本地安装包。
  • 全局安装:将安装包放在/urs/local或者node的安装目录;可以直接在命令行使用。
npm install <module>		# 本地安装
npm install <module> -g # 全局安装
npm list -g #查看所有全局安装模块
npm list <module> #查看具体模块版本号

使用package.json

package.json位于模块的根目录下,用于定义包的属性。

package.json具体属性说明:

  • name——包名
  • version——包的版本号
  • description——包的描述
  • homepage——包的官网url
  • author——包的作者
  • contributors——包的其他贡献者
  • dependencies——依赖包列表。如果依赖包没有安装,npm会自动将依赖包安装在node_module目录下
  • repository——包代码存在的地方类型,可以是git、svn
  • main——程序的主入口文件,默认是模块根目录的index.js
  • keyword——关键字

NPM版本号

NPM使用语义版本号管理代码。语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。代码变更时,版本号按照如下原则更新。

  • 如果只是修复bug,需要更新Z位。
  • 如果是新增了功能,但向下兼容,需要更新Y位。
  • 如果有大变动,向下不兼容,需要更新X位。

版本号有了这个保证后,在申明第三方包依赖的时候,可以依赖某个范围的版本号。

使用淘宝NPM镜像

国内直接使用npm官方镜像非常慢,可以使用淘宝NPM镜像。淘宝NPM镜像是一个完整的npmjs.org镜像,同步频率为10min一次。

淘宝npm: http://npm.taobao.org/

npm install -g cnpm --registry=https://registry.npm.taobao.org #安装cnpm代替npm
npm config set registry https://registry.npm.taobao.org/ #直接修改npm镜像仓库registry

【前端】NodeJs包管理工具NPM的更多相关文章

  1. NodeJS包管理工具——npm入门

    如今每个语言体系中都有一个包管理工具,PHP的Composer,Ruby的gem,Python的pip,Java的Maven……当然还有Node.js的npm.有的人会奇怪为何要引入又一个新东西来让我 ...

  2. nodejs包管理工具npm

    用Node.js安装模块 在某个项目中单独安装的时候,npm会下载所有的文件到你项目中的一个叫做node_modules的文件夹内 全局模块会被安装到{prefix}/lib/node_modules ...

  3. 主流包管理工具npm、yarn、cnpm、pnpm之间的区别与联系——原理篇

    接触 node 之后,一直使用npm包管理工具, cnpm 一开始会用一些,但是并没有觉得比 npm 快得多,使用 cnpm 的时候还经常安装不成功,只能再用 npm 安装一遍,渐渐的就弃用了 cnp ...

  4. bower一个强大的前端依赖包管理工具

    在介绍之前,你必须的知道bower是基于nodejs开发的,所以你首先必须得有个nodejs环境,至于这么安装nodejs网上一大堆教程,对了使用bower还需要安装git,这里就不多说了. #### ...

  5. node.js开发 npm包管理工具 npm 和 cnpm区别

    npm 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用. 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用 np ...

  6. 更换包管理工具npm为yarn

    官网:https://yarnpkg.com/zh-Hans/ 主要考虑: 1. npm管理安装模块依赖的版本不太方便,容易在删除node_modules重新install或在其他机器上新安装时, 安 ...

  7. JavaScript 包管理工具npm 和yarn 对比

  8. 包管理工具(npm、yarn)

    npm包管理工具 1. npm的包安装分为本地安装(local).全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已. 2. 这两种安装方式的区别: 本地安装(安装在命令行运行所在 ...

  9. Node.js之包与npm包管理工具

    Node.js之包与npm包管理工具 1.Node.js中的包 1.1在一个包中包含如下内容: package.json:对包进行描述 在bin子目录中存放二进制文件 在lib子目录中存放JavaSc ...

随机推荐

  1. Evenbus简单用法

    Evenbus是一个开源插件,可以帮我们在app里面进行数据传递,传递的对象为Object,就是说可以传输任何对象,但是一般为了拓展性和维护性,我们都用来传输Bean类型. 这个插件最重要的是注册和反 ...

  2. js便签笔记(10) - 分享:json.js源码解读笔记

    1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转 ...

  3. Linux cp 强制覆盖

     Linux下默认cp命令是有别名(alias cp='cp -i')的,无法强制覆盖,即使你用 -f 参数也无法强制覆盖文件,下面提供两种Linux下cp 覆盖方法. 1) 取消cp的alias,这 ...

  4. vue中使用animate.css

    一:使用animate.css的使用 1.安装npm install animate.css --save 2.在main.js中引入import animate from 'animate.css' ...

  5. Spring读取配置文件 @Value

    最近在学习Spring如何读取配置文件,记录下方便自己也方便别人: 大致分为两类吧,一种的思路是利用Spring的beanFactoryPostProcessor读取配置文件内容到内存中,也就是应用程 ...

  6. WPF 中Canvas图形移动、缩放代码

    从Flash转C#,很多内容一知半解,边摸索边前进,代码粗糙,权当留个脚印. 只是想得到一个基础的移动和缩放功能的界面,找了很久都是画线.画矩形等基础形状的代码,移动和缩放说的并不清晰,只能自己努力来 ...

  7. POJ 1679 The Unique MST(判断最小生成树是否唯一)

    题目链接: http://poj.org/problem?id=1679 Description Given a connected undirected graph, tell if its min ...

  8. Dockerfile构建镜像

    Dockerfile构建镜像的步骤: 从基础镜像运行一个容器 执行一条指令,对容器做出修改 执行类似docker commit的操作,提交一个新的镜像层 再基于刚提交的镜像运行一个新的容器 执行Doc ...

  9. VC++6.0调试:Watch窗口的使用

    #include <stdio.h> #include <windows.h> class AutoExpand { public: AutoExpand(int val, c ...

  10. [日常] Go语言圣经-基于select的多路复用习题

    练习 8.8: 使用select来改造8.3节中的echo服务器,为其增加超时,这样服务器可以在客户端10秒中没有任何喊话时自动断开连接. reverb3.go package main import ...