开始Node.js-npm的使用

在这篇文章里,我介绍一下作为一个Node.js初学者首先需要了解的知识点——npm

Node.js的包管理器-npm

npm 是安装Node.js时一同安装的包管理器,利用它,我们可以下载一些我们程序所依赖的开发包。

大家可以到这里查找需要的开发包,写这篇文章的时候,库里面已经有61741个安装包可供下载。

也可以利用命令行查找你需要的包,例如:

npm search less

搜索到需要的包后执行安装

npm install less

现在我们新建一个node项目,看看npm是怎样管理包的:

  1. 新建一个名为begin_node的文件夹

    mkdir begin_node
    
  2. 进入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"
     }

这就是包的描述文件。

  1. 执行

    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.


blog comments powered by Disqus