美文网首页
关于npm的介绍和使用

关于npm的介绍和使用

作者: JRG_Orange | 来源:发表于2017-09-06 22:19 被阅读0次

NPM(node package manager),通常称为node包管理器。顾名思义,它的主要功能就是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。

一.npm的安装

以前的node.js需要自己下载npm,现在只要用户下载node.js,npm就会下载在本地了。
node.js下载网址
安装完成后,在终端输入:

node -v

可以查看node.js的版本号;
同样输入:

npm -v

也可以查看npm的版本号。

二. npm包管理

npm包就想手机app商店里的应用,每一个应用都有一个独一无二的名字,所以安装时只需要通过名称来下载想要的包。
node包的安装分两种:本地安装、全局安装。两者的区别如下:

  1. 本地安装:package会被下载到当前所在目录,也只能在当前目录下使用。(一般cd到当前工作的文件夹下安装)本地安装只需要输入:
npm install xxx

也可以快捷输入为:

npm i xxx

安装指定版本的包:

npm install xxx@x.x.x

卸载一个包:

npm uninstall xxx

本地安装的包,安装在当前项目的node_modules文件夹下。
本地安装后可以直接通过require()的方式引入项目中node_modules目录下的模块,如下示例,本地安装后直接在gulpfile.js中require('gulp')。

var gulp = require('gulp')
var sass = require('sass')

tips: 如果使用npm安装插件太慢(被墙),可执行

npm install -g cnpm --registry=[https://registry.npm.taobao.org

安装好cnpm之后,再安装插件时用cnpm安装node包:

cnpm install gulp
  1. 全局安装:package会被下载到Node安装目录下的node_modules文件夹中,(在windows下,一般在 \Users\用户名\AppData\Roaming\ 目录下)可以使用
npm root -g

查看全局安装目录。
全局安装的命令为:

npm install -g xxx

全局安装的package能够在所有目录下“使用”,一般命令行工具使用全局安装。

这里有一个误区,既然可以全局安装了,我们为什么还要浪费时间在本地安装呢?

  1. 全局安装只是意味着用户可以在全局使用该组件包支持的命令行,并不是所有的项目文件夹中可以require到想要的依赖(包),当我们在本地引用一个包时,首先在引用文件的文件夹中查找node_modules文件夹,如果没就在上一层文件夹中查找node_modules,最后直接到根目录,很明显这个过程不会查找到全局安装的目录。
  2. 全局安装对于包的更新不好管理,可能你需要为每个包重新命名,如gulp@3.8.1、gulp@3.9.1...,为了区别不同项目使用指定的包(我们在项目中可能经常需要使用不同版本的包),保证模块之间的相互依赖,区别每个项目正常运行,所以本地安装也是很有必要的。

三、关于npm的package.json

在我们完成一个项目时,有一些包是开发、测试、打包等工程化所需要的,有一些则是项目运行中所依赖的。当我们把包发布上线时,用户只需要下载项目运行时所需要的包就可以了。那么用户的npm如何知道哪些是必须的依赖呢。这些信息都会写在node包的package.json中。
每一个node包都会有一个package.json文件,在安装一个node包时,当我们执行

npm install --save xxx

安装的node包的名称就会写入package.json中的dependencies字段下,表示这个包是项目运行所依赖的包。
如果我们安装一个包时执行:

npm install --save-dev xxx

则会在packaeg.json中的devDependencies字段下写入node包的名字,说明这个包时开发中依赖的包。
如此一来用户在下载使用我们开发的包时,就可以只下载运行中依赖的包了。
在新建的项目文件夹中执行:

npm init

会生成一个package.json文件,会提示让你输入包的名称、版本号、作者等信息。如果觉得复杂当然可以选择直接按enter过,或者你可以选择:

npm init -y

来快速创建一个package.json文件。
下面是一个完整的package.json文件:

{
    "name": "Hello World",
    "version": "0.0.1",
    "author": "张三",
    "description": "第一个node.js程序",
    "keywords":["node.js","javascript"],
    "repository": {
        "type": "git",
        "url": "https://path/to/url"
    },
    "license":"MIT",
    "engines": {"node": "0.10.x"},
    "bugs":{"url":"http://path/to/bug","email":"bug@example.com"},
    "contributors":[{"name":"李四","email":"lisi@example.com"}],
        "bin": {
                "weather": "./index.js"
        }
    "scripts": {
        "start": "node index.js"
    },
    "dependencies": {
        "express": "latest",
        "mongoose": "~3.8.3",
        "handlebars-runtime": "~1.0.12",
        "express3-handlebars": "~0.5.0",
        "MD5": "~1.2.0"
    },
    "devDependencies": {
        "bower": "~1.2.8",
        "grunt": "~0.4.1",
        "grunt-contrib-concat": "~0.3.0",
        "grunt-contrib-jshint": "~0.7.2",
        "grunt-contrib-uglify": "~0.2.7",
        "grunt-contrib-clean": "~0.5.0",
        "browserify": "2.36.1",
        "grunt-browserify": "~1.3.0",
    }
}

最后值得一提的是scripts字段和bin字段,package.json的scripts字段指定了运行脚本命令的npm命令行缩写,比如上面的start指定了运行npm run start时,所要执行的命令"node index.js"。这更加方便我们调用指令,不用输入一大串的指令来调用模块。
bin字段则指定各个内部命令对应的可执行文件的位置,比如上面的weather指定了可执行文件index.js的位置。下面我们还会相信讲解发布一个node包时,bin的用法。

四、如何发布自己的npm包

在熟悉了npm的使用方法后,我们可以尝试自己写一个简单的npm包,并发布上线,首先我们需要一个npm账号,可以在npm官网,注册一个账号。在完成邮箱验证后就可以发布自己的包了。
在制作自己的node包时,首先我们新建一个项目文件夹,cd到文件夹中,使用

npm init

来创建package.json文件,然后安装自己的开发依赖包和运行依赖包,最后把可执行文件的位置添加到bin字段,使用者就可通过bin字段的命令来快捷执行可执行文件,需要注意的是当js文件作为可执行文件时需要在文件的开始添加

#!/usr/bin/env node

这样文件就会默认在node环境中执行。
我们可以通过命令:

npm login

来登录npm账号
通过

npm publish

来发布完成的node包
当修改一个包后重新发布时,需要修改版本号,才可以发布上线,在发布时最好有一个readme.md来说明如何使用和包的功能示例。

更多详细的npm相关介绍可查看npm官方文档

相关文章

  • 关于npm的介绍和使用

    NPM(node package manager),通常称为node包管理器。顾名思义,它的主要功能就是管理nod...

  • 关于 npm 和 cnpm 的介绍

    一. NPM npm 是伴随 Nodejs一起安装的包管理器,能解决NodeJS代码部署上的很多问题,常见的使用场...

  • NPM使用介绍

    原文地址:LoveDev NPM全名是Node Package Manager,是Node.js的套件(packa...

  • NPM 使用介绍

    NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: ...

  • NPM 使用介绍

    NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:允...

  • Npm 使用介绍

    Npm是NodeJS一起安装的包管理工具,使用场景:1、从NPM服务器下载别人编写的第三方包到本地使用,2、从NP...

  • npm使用介绍

    npm是什么? npm是node.js的一个包管理工具,方便的使用第三方库,无需每次新建一个项目而导入第三方JS库...

  • NPM使用介绍

    NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: ...

  • NPM 使用介绍

    NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用...

  • node npm init 创建项目 package.json

    三、npm 创建项目 上一节已经介绍了 npm 的安装,这一节来介绍 npm 的使用。首先使用 npm 创建一个项...

网友评论

      本文标题:关于npm的介绍和使用

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