美文网首页iOS
NPM是什么?

NPM是什么?

作者: 皆为序幕__so | 来源:发表于2017-01-19 16:20 被阅读3117次

    1、什么是NPM?

    NPM(node package manager),通常称为node包管理器,主要功能就是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。NPM是基于couchdb一个数据库,详细记录了每个包的信息(作者、版本、依赖、授权信息等)

    NPM官方网站:NPM官方网站

    NPM官方文档:NPM官方文档

    我们需要了解什么?

    1、NPM的安装、卸载、升级、配置

    2、NPM的使用:packer的安装、卸载】升级、查看、搜索、发布

    3、NPM包的安装:本地安装  、全局安装

    4、package.json:包描述信息

    5、package版本:版本说明

    NPM安装

    本地安装:package会被下载到当前所在目录,只能爱当前目录下使用

    全局安装:package会被下载到待定的系统目录下,安装的package能在所有目录下使用

    npm install pkg-本地安装

    运行如下命令,就会在当前目录下安装 grunt-cli (grunt命令行工具)

    npm install grunt-cli

    安装结束后,当前目录下回多出一个 node_modules 目录,grunt-cli就安装在里面。同时注意控制台输出的信息:

    grunt-cli@1.2.0  /Users/user/Desktop/NPM

    ├─┬ findup-sync@0.3.0

    ├── grunt-known-options@1.1.0

    ├─┬ nopt@3.0.6

    └── resolve@1.1.7

    npmdemo@1.0.0:当前安装的package为grunt-cli,版本是1.2.0

    /Users/user/Desktop/NPM:安装目录

    nopt、resolve、findup-sync:依赖的包有nopt、resolve、findup-sync,它们各自的版本、依赖在后面的括号里列出来

    npm install pkg-全局安装

    上面已经安装了grunt-cli,然后你跑到其他目录下面运行如下命令

    grunt

    果断提示你grunt命令不存在,为什么呢?因为上面只是进行了 本地安装 ,grunt命令只能在对应安装目录下使用。

    Fatal error: Unable to find local grunt.

    如果为了使用grunt命令,每到一个目录下都得重新安装一次,因此,用全局安装,很简单,需要加上参数 -g 

    npm install -g grunt-cli

    此时控制台输入的信息有点不同。主要的区别在于安装目录,现在变成了 /usr/local/lib/node_modules/grunt-cli/bin/grunt,/usr/local/lib,这就是全局安装

    ├─┬ findup-sync@0.3.0

    ├── grunt-known-options@1.1.0

    ├─┬ nopt@3.0.6

    └── resolve@1.1.7

    npm包管理

    nam的包管理命令使用频率比较高,安装、卸载、更新、查看、搜索、发布等等

    安装最新版本的grunt-cli

    npm install grunt-cli

    安装0.1.9版本的grunt-cli

    npm install grunt-cli@"0.1.9"

    通过package.json进行安装,如果我们的项目依赖了很多package,一个一个地安装那将是个体力活。我们可以将项目依赖的包都在package.json这个文件里声明,然后一行命令搞定

    npm install

    卸载grunt-cli

    npm uninstall grunt-cli

    卸载0.1.9版本的grunt-cli

    npm uninstall grunt-cli@"0.1.9"

    npm ls:查看安装了哪些包,运行如下命令,就可以查看当前目录安装了哪些package

    npm ls

    /Users/user

    ├─┬ grunt-cli@1.2.0

    │ ├─┬ findup-sync@0.3.0

    │ │ └─┬ glob@5.0.15

    │ │  ├─┬ inflight@1.0.6

    │ │  │ └── wrappy@1.0.2

    │ │  ├── inherits@2.0.3

    │ │  ├─┬ minimatch@3.0.3

    │ │  │ └─┬ brace-expansion@1.1.6

    │ │  │  ├── balanced-match@0.4.2

    │ │  │  └── concat-map@0.0.1

    │ │  ├── once@1.4.0

    │ │  └── path-is-absolute@1.0.1

    │ ├── grunt-known-options@1.1.0

    │ ├─┬ nopt@3.0.6

    │ │ └── abbrev@1.0.9

    │ └── resolve@1.1.7

    └─┬ jsdoc@3.4.3

    ├── bluebird@3.4.6

    ├─┬ catharsis@0.8.8

    │ └─┬ underscore-contrib@0.3.0

    │  └── underscore@1.6.0

    ├── escape-string-regexp@1.0.5

    ├─┬ espree@3.1.7

    │ ├── acorn@3.3.0

    │ └── acorn-jsx@3.0.1

    ├── js2xmlparser@1.0.0

    ├─┬ klaw@1.3.1

    │ └── graceful-fs@4.1.11

    ├── marked@0.3.6

    ├─┬ mkdirp@0.5.1

    │ └── minimist@0.0.8

    ├─┬ requizzle@0.2.1

    │ └── underscore@1.6.0

    ├── strip-json-comments@2.0.1

    ├── taffydb@2.6.2

    └── underscore@1.8.3

    npm ls pkg:查看特定package的信息,运行如下命令,输出grunt-cli的信息

    npm ls grunt-cli

    如果要查看更详细信息,可以通过 npm info pkg ,输出的信息非常详尽,包括作者、版本、依赖等。

    npm info grunt-cli

    npm search pga:搜索

    npm update grunt-cli

    npm发布

    这个命令我自己也还没实际用过,不误导大家,语法如下,也可参考官方对于package发布的说明:package发布

    NPM配置

    npm的配置工作主要是通过nam config 命令,包含了增、删、改、查几个步骤,以proxy为例

    关于package.json

    Package.json 属性说明

    name - 包名。

    version - 包的版本号。

    description - 包的描述。

    homepage - 包的官网 url 。

    author - 包的作者姓名。

    contributors - 包的其他贡献者姓名。

    dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。

    repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。

    main - main 字段是一个模块ID,它是一个指向你程序的主要项目。就是说,如果你包的名字叫 express,然后用户安装它,然后require("express")。

    keywords - 关键字

    最后,简单地把最常见的命令,以及一些需要了解的内容列了出来。如要进一步了解,可参考官网说明。此外, npm help 是我们最好的朋友,如果忘了有哪些命令,命令下有哪些参数,可通过help进行查看。

    相关文章

      网友评论

        本文标题:NPM是什么?

        本文链接:https://www.haomeiwen.com/subject/enivbttx.html