npm更新

首先先更新吧

第一步:

首先安装n模块:

npm install -g n

第二步:

升级node.js到最新稳定版

n stable

n后面也可以跟随版本号比如:

n v 0.10.26

n 0.10.26

另外分享几个npm的常用命令

 

npm -v          #显示版本,检查npm 是否正确安装。npm install express   #安装express模块npm install -g express  #全局安装express模块npm list         #列出已安装模块npm show express     #显示模块详情npm update        #升级当前目录下的项目的所有模块npm update express    #升级当前目录下的项目的指定模块npm update -g express  #升级全局安装的express模块npm uninstall express  #删除指定的模

npm –sva-dev

 

npm install X:

  • 会把X包安装到node_modules目录中
  • 不会修改package.json
  • 之后运行npm install命令时,不会自动安装X

npm install X –save:

  • 会把X包安装到node_modules目录中

  • 会在package.json的dependencies属性下添加X

  • 之后运行npm install命令时,会自动安装X到node_modules目录中

  • 之后运行npm install 
    –production或者注明NODE_ENV变量值为production时,会自动安装msbuild到node_modules目录中

npm install X –save-dev:

  • 会把X包安装到node_modules目录中

  • 会在package.json的devDependencies属性下添加X

  • 之后运行npm install命令时,会自动安装X到node_modules目录中

  • 之后运行npm install 
    –production或者注明NODE_ENV变量值为production时,不会自动安装X到node_modules目录中

总结
devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的,所以我们可以使用 -save-dev 的形式安装。像 express 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用 -save 的形式安装。

package.json和package-lock.json

最新版nodejs中,多了一个package-lock.json文件,刚开始对这个文件很是疑惑,后来查了一番资料后,通过验证,终于确定了这两个文件的关系。

package.json与package-lock.json文件的作用
package.json文件记录你项目中所需要的所有模块。当你执行npm install的时候,node会先从package.json文件中读取所有dependencies信息,然后根据dependencies中的信息与node_modules中的模块进行对比,没有的直接下载,已有的检查更新(最新版本的nodejs不会更新,因为有package-lock.json文件,下面再说)。另外,package.json文件只记录你通过npm install方式安装的模块信息,而这些模块所依赖的其他子模块的信息不会记录。

package-lock.json文件锁定所有模块的版本号,包括主模块和所有依赖子模块。当你执行npm install的时候,node从package.json文件读取模块名称,从package-lock.json文件中获取版本号,然后进行下载或者更新。 

因此,正因为有了package-lock.json文件锁定版本号,所以当你执行npm install的时候,node不会自动更新package.json文件中的模块,必须用npm install packagename(自动更新小版本号)或者npm install packagename@x.x.x(指定版本号)来进行安装才会更新,package-lock.json文件中的版本号也会随着更新。

附:当package.json与package-lock.json都不存在,执行"npm install"时,node会重新生成package-lock.json文件,然后把node_modules中的模块信息全部记入package-lock.json文件,但不会生成package.json文件,此时,你可以通过"npm init –yes"来生成package.json文件

npm常用命令详解