zoukankan      html  css  js  c++  java
  • npm模块安装机制简介

    npm是node的模块管理器,功能及其强大,它是node获得成功的重要原因之一。

    正因为有了nom,我们只要一行命令,就能安装别人写好的模块。

    $ npm install

    本文介绍npm模块安装机制的细节,以及如何解决安装速度慢的问题

    一。从npm install说起

    npm install 命令用来安装模块到node_modules目录;

    $ npm install <packageName>

    安装之前,npm install 会先检查,node_modules中是否已经存在指定模块,如果存在,就不重新安装了,即使远程仓库已经有了一个新版本,也是如此。

    如果你希望,一个模块不管是否安装过,npm都要强制重新安装,可以用 -f 或 -force 参数

    $ npm install <packageName> --force

    二。npm update

    如果想更新已安装模块,就要用到 npm update 命令

    $ npm update <packageName>

    它会先到远程仓库查询最新版本,然后查询本地版本,如果本地版本不存在,或者远程版本较新,就会安装。

    三。registry

    npm update 命令是怎么知道每个模块的最新版本呢?

    答案是npm模块仓库提供了一个查询服务,叫做regisrty,以 npmjs.org 为例,它的查询服务网址是 https://registry.npmjs.org/ 。

    这个网址后面跟上模块名,就会得到一个JSON对象,里面是该模块所有版本信息,比如,访问https://registry.npmjs.org/react,就会看到 react 模块所有版本的信息。

    它跟下面命令的效果是一样的。

    $ npm view react
    
    # npm view 的别名
    $ npm info react
    $ npm show react
    $ npm v react

    registry 网址的模块名后面,还可以跟上版本号或标签,用来查询某个具体版本的信息,比如,访问 https://registry.npmjs.org/react/v0.14.6 ,就可以看到 react 的0.14.6版本

    返回的JSON对象里面,有一个dist.tarball属性,是该版本压缩包的网址

    dist: {
      shasum: '2a57c2cf8747b483759ad8de0fa47fb0c5cf5c6a',
      tarball: 'http://registry.npmjs.org/react/-/react-0.14.6.tgz' 
    },

    到这个网址下载压缩包,在本地解压,就得到了模块的源码,npm installnpm update命令,都是通过这种方式安装模块的。

    四,缓存目录

    npm install 或 npm update 命令,从 registry 下载压缩包之后,都存放在本地的缓存目录

    这个缓存目录,在Linux或Mac默认是用户主目录下的.npm目录,在 Windows 默认是%AppData%/npm-cache。通过配置命令,可以查看这个目录的具体位置。

    $ npm config get cache
    $HOME/.npm
  • 相关阅读:
    iOS开发——Xcode快捷键
    iOS开发——国际化支持Localizable.strings
    SQL 函数
    常用窗体表单布局
    Extjs grid combo
    怎么完全卸载sql2005?
    ExtJS文件上传
    ExtJS视频学习笔记
    ExtJS问题集——Menu的show()和showBy()函数是什么意思
    C# DataGridView操作
  • 原文地址:https://www.cnblogs.com/woshidouzia/p/10969306.html
Copyright © 2011-2022 走看看