开始Node.js-npm的使用
在这篇文章里,我介绍一下作为一个Node.js初学者首先需要了解的知识点——npm
Node.js的包管理器-npm
npm 是安装Node.js时一同安装的包管理器,利用它,我们可以下载一些我们程序所依赖的开发包。
大家可以到这里查找需要的开发包,写这篇文章的时候,库里面已经有61741个安装包可供下载。
也可以利用命令行查找你需要的包,例如:
npm search less
搜索到需要的包后执行安装
npm install less
现在我们新建一个node项目,看看npm是怎样管理包的:
新建一个名为begin_node的文件夹
mkdir begin_node
进入begin_node执行
npm init
执行完后会发现begin_node目录下多了一个package.json的文件
{ "name": "begin_node", "version": "0.0.0", "description": "this is a test", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": "", "author": "", "license": "BSD" }
这就是包的描述文件。
执行
npm install less
执行完后发现又多出了一个目录:node_modules.
在项目中执行npm install
命令时,会将包安装到本项目的node_modules文件夹中,如果执行
npm install less -g
加了一个-g参数就代表将包安装到全局,这样就可以在本机的所有项目中使用,这些全局的包安装在全局的node_modules文件夹中。
下面,让我们试试下面这个命令,看看会发生什么:
npm install less --save
我们再打开begin_node文件下的package.json文件,看看发生了什么
{ "name": "begin_node", "version": "0.0.0", "description": "this is a test", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": "", "author": "", "license": "BSD", "dependencies": { "less": "~1.7.0" } }
我们会发现package.json中的最后多出了一个dependencies项。这表示我们的begin_node项目中依赖了less,以后所有此项目的依赖都可以写在这里。
有关package.json中的各项说明可以参考这里
现在,我们删除begin_node下的node_modules目录,然后再执行
npm install
我们发现项目中重新创建了一个node_modules,里面包含了我们的依赖-less.这就是为什么github上的很多项目都没有node_modules目录的原因。我们只需要将 项目代码拉到本地来,然后执行npm install ,这样我们就下载了项目所需要的所有的依赖。所以这里就引出了一个建议。
最好不要在svn或者git上提交node_modules 文件夹
最大的原因是根本没有必要去提交,用户只需要运行npm install就会自动下载安装和生成这个文件夹了。 其他的原因还包括协作开发者使用的操作系统不同,而其中依赖的某个包有可能是与系统有关的工具编译生成的。
“最好”两个字是我加的,因为处于某些原因我们不得不提交node_modules,在中国,执行npm install 安装依赖的时间可能比较长,等不起!
好啦,npm就讲到这里,有关npm的更多命令,可以参考这里
下一篇文章我们介绍nodemon和pm2.