npm,Node Package Manager,是node.js的模块依赖管理工具,安装nodejs时,一般会附带npm包管理工具。

一、npm相关
1、npm的用途

  • 能解决NodeJS代码部署上的很多问题;
  • 允许用户从npm服务器下载别人编写的第三方包到本地使用;
  • 允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用;
  • 允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用。

2、npm的命令
A、安装npm
新版的nodejs已经集成了npm,不用额外安装。
B、查看npm是否安装成功

npm -v  // 5.4.1

C、查看帮助

npm help

# 查看安装过程中出现的问题npm i --verbose

D、npm升级

sudo npm install npm@latest -g

E、设置proxy

npm config set proxy http://proxy.example.com:8080

F、查看proxy

npm config get proxy

G、删除proxy

npm delete proxy

H、查看所有配置

npm config list

I、修改配置文件

npm config edit

J、清空npm本地缓存

npm cache clear

K、开启服务

npm start是npm run start的简写

L、停止服务

npm stop是npm run stop的简写

M、测试服务

npm run test

N、运行服务

npm run build

build是在package.json文件的scripts字段中定义的。

二、npm包相关
1、包安装模式
npm的包安装分为本地安装(local)、全局安装(global)两种,从命令行来看,差别只是有没有-g。
全局安装:package会被下载到特定的系统目录下,安装的package能够在所有目录下使用。
本地安装:package会被下载到当前所在目录,也只能在当前目录下使用。

2、npm包管理命令
这里假设包的名字是pkg哈,你想安装webpack,还是vuejs,把名字换下即可。
A、安装包

npm install pkg 或者 npm i pkg
npm install pkg -g

安装好后,pkg包就放在了工程目录下的node_modules文件夹中,因此在代码中,只需要通过require('pkg') 的方式引用就好,无需指定第三方包路径。

//把依赖包名称添加到package.json文件dependencies键下,dependencies是运行时依赖,发布代码时,也要用。
npm install pkg --save 或者 npm i pkg -S

//把依赖包名称添加到package.json文件devDependencies键下,devDependencies是开发时依赖,只在开发阶段使用。
npm install pkg –-save-dev 或者 npm i pkg -D
//生产环境
npm install pkg --save-prod

B、查看全局安装的包有哪些

npm list -g

C、查看某个包的信息

npm info pkg

D、卸载包

npm uninstall pkg

卸载后,可以到/node_modules/目录下查看包是否还存在,或者使用以下命令查看。

npm ls

E、更新包

npm update pkg

F、搜索包

npm search pkg

如果你想当一个creator,开发自己的包,并上传到npm服务器,可进行下面的操作。

G、创建包
package.json文件必不可少,可以用如下命令生成该文件。

npm init

H、注册用户

npm adduser

输入用户名,密码,邮箱。
I、发布包

npm publish

J、撤销发布

npm unpublish pkg@1.0.1

K、链接模块

npm link

L、授权给其他人

npm owner add zhangwen.cao @cy/icon --registry=http://registry.npm.cydata.com.cn

三、淘宝镜像
由于npm的源在国外,国内用户直接使用npm官方镜像下载第三方包,非常慢,感受过用npm命令升级npm的蜗牛速度就明白了。这里推荐淘宝npm镜像,同步频率10分钟1次。3种使用方式如下:
1、临时使用

npm --registry https://registry.npm.taobao.org install pkg

2、持久使用

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

npm info pkg

3、通过cnpm使用

npm install cnpm -g --registry=https://registry.npm.taobao.org
//比如,下载包
cnpm install pkg -g

//比如,升级npm
cnpm install npm -g

cnpm和npm命令相同,唯一的弊端就是cnpm不能成功publish。

# 删除镜像
npm config delete registry

npm那些事儿的更多相关文章

  1. webpack 教程 那些事儿04-webpack项目实战分析

    这节主要讲解真正项目用用到的 webpack配置问题,项目实战篇 就像我们不会完全做一个项目,不用别人的轮子一样.这个配置我们借用 vue-cli 搭建的配置来研究,因为它已经足够优秀. 有了前面的基 ...

  2. npm是什么,用来干嘛的

    网上的 npm 教程主要都在讲怎么安装.配置和使用 npm,却不告诉新人「为什么要使用 npm」.今天我就来讲讲这个话题. 本文目标读者是「不太了解 npm 的新人」,大神您别看了,不然又说我啰嗦了 ...

  3. 了解可执行的NPM包

    NPM是Node.js的包管理工具,随着Node.js的出现,以及前端开发开始使用gulp.webpack.rollup以及其他各种优秀的编译打包工具(大多数采用Node.js来实现),大家都开始接触 ...

  4. npm 是干什么的

    网上的 npm 教程主要都在讲怎么安装.配置和使用 npm,却不告诉新人「为什么要使用 npm」.今天我就来讲讲这个话题. 本文目标读者是「不太了解 npm 的新人」,大神您别看了,不然又说我啰嗦了 ...

  5. Nodejs编译Native Code:使用C++构建工具npm

    Nodejs的很多NPM包需要本地编译,通常是C++写的代码,例如图像处理模块等. 这是如果生产环境没有安装Visual Studio 2015等开发工具,通常会编译失败,发现了一个npm专门干这事儿 ...

  6. (转)如何制作nodejs,npm “绿色”安装包

      摘自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=8625039&id=3817492       由于公司环境 ...

  7. 我想写一个前端开发工具(一):在npm发布模块

    有必要说说我为什么要开始写这个,正文从下面的第一条开始 我最近忙于公司的项目,一直没有抽出时间来写文章.本来想每个月写一片文章,保质保量,无奈上个月没有坚持. 这段时间有点忙,主要是由于公司业务调整, ...

  8. npm 的作用

    接触 npm 也有一个多月的时间了,一直只是将他作为当着 webstorm + node.js 环境中的一个插件来用(甚至说把她当着命令来用).毕竟大部分的时间,他是输入的命令行中的一部分(别笑,小新 ...

  9. npm 是干什么的?

    网上的 npm 教程主要都在讲怎么安装.配置和使用 npm,却不告诉新人「为什么要使用 npm」.今天我就来讲讲这个话题. 本文目标读者是「不太了解 npm 的新人」,大神您别看了,不然又说我啰嗦了 ...

随机推荐

  1. Stanford Local 2016 E "Election of Evil"(搜索(正解)或并查集(划掉))

    传送门 题意: 给出集合U,V,集合U有n个元素,集合V有m个元素: 有 m 个操作,mi : s1 s2 有一条s1指向s2的边(s1,s2可能属于第三个集合,暂且称之为K集合): 指向边具有传递性 ...

  2. jmeter将上一个接口返回值作为下一个接口的请求参数

    在jmeter中有时候会用到,将上一个接口的返回值作为下一个接口的请求参数 具体操作如下: 1.首先新建一个http请求(右键线程组--添加Sampler--http请求),同时添加好接口相应的请求参 ...

  3. Python变量命名规范

    模块名: 小写字母,单词之间用_分割 ad_stats.py 包名: 和模块名一样 类名: 单词首字母大写 AdStats ConfigUtil 全局变量名(类变量,在java中相当于static变量 ...

  4. CMDB资产管理系统开发【day26】:实现资产自动更新

    1.需求分析 1.比对分析 比对的时候以那个数据源为主? old [1,2,3 ] db数据库 new [2,3,4 ] 客户端汇报过来的 当然以客户端汇报过来的数据为主 2.更新分析 不同的表到底拿 ...

  5. 金融量化分析【day110】:NumPy-切片和索引

    一.索引和切片 1.数组和标量之间的运算 2.同样大小的数组之间的运算 3.数组索引 4.数组切片 1.一维数组 2.多维数组 二.布尔索引 1.问题 给一个数组,选出数组中所有大于5的数 1.答案 ...

  6. 深入学习c++(虚函数遇到析构函数就退化了)

    1. 在构造函数和析构函数中调用的虚函数并不具备虚函数的特性 因为基类的构造函数先构造, 析构函数后析构

  7. 使用echarts-for-react 绘制折线图 报错:`series.type should be specified `

    解决办法: 在动态获取值的函数前面加 访问器属性  get ,去获取对象的属性 @inject('commonStore', 'reportUIStore') @observer class Line ...

  8. java PDF2JPG

    import org.apache.commons.lang3.StringUtils; import org.apache.pdfbox.pdmodel.PDDocument; import org ...

  9. 【ARTS】01_21_左耳听风-201900401~201900407

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  10. Visual Studio Code 的使用方法和技巧

    VSCode是微软推出的一款轻量编辑器,采取了和VS相同的UI界面,搭配合适的插件可以优化前端开发的体验. 布局:左侧是用于展示所要编辑的所有文件和文件夹的文件管理器,依次是`资源管理器`,`搜索`, ...