Node.js学习笔记(二、NPM 使用)

简介: Node.js学习笔记(二、NPM 使用)

介绍

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

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
    由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。

使用 npm 命令安装模块

npm 安装 Node.js 模块语法格式如下:

$ npm install <Module Name>

全局安装与本地安装

npm 的包安装分为本地安装(local)、全局安装(global)两种:

  • 本地安装
     1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
     2. 可以通过 require() 来引入本地安装的包。
  • 全局安装
     1. 将安装包放在 /usr/local 下或者node 的安装目录。
     2. 可以直接在命令行里使用。

例如: npm 命令本地安装常用的 Node.js web框架模块 express。

npm install express

image.png

当前路径下生成了一个目录node_modules和一个文件package-lock.json。

node_modules目录:

image.png

express目录:

image.png

package.json文件:

image.png

Package.json 属性说明:

  • .name - 包名。
  • .version - 包的版本号。
  • .description - 包的描述。
  • .homepage - 包的官网 url 。
  • .author - 包的作者姓名。
  • .contributors - 包的其他贡献者姓名。
  • .dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
  • .repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
  • .main - main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
  • .keywords - 关键字

卸载模块

卸载模块命令:

$ npm uninstall express

image.png

卸载后,到 /node_modules/ 目录下查看,express包没有了,或者使用以下命令查看:

$ npm ls

更新模块

命令:

$ npm update express

搜索模块

命令:

$ npm search express

创建模块

  • 新建项目目录:
E:\project\hookhook
  • 在目录里写个js文件thress.js。
function hello(){
  console.log("Give you a hook");
}
exports.hello=hello;
  • package.json
    用 npm 命令来创建package.json 文件,
npm init

如果是要发布模块的话,keywords填npmjs.com上的密码,author填npmjs.com的名字。也可以随便填,要发布的时候再改package.json也是可行的。

image.png

详解:

$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
name: (node_modules) runoob                   # 模块名
version: (1.0.0) 
description: Node.js 测试模块(www.runoob.com)  # 描述
entry point: (index.js) 
test command: make test
git repository: https://github.com/runoob/runoob.git  # Github 地址
keywords:                            #密码
author:                                #名字
license: (ISC) 
About to write to ……/node_modules/package.json:      # 生成地址
{
  "name": "runoob",
  "version": "1.0.0",
  "description": "Node.js 测试模块(www.runoob.com)",
  ……
}
Is this ok? (yes) yes

现在在路径下生成了一个package.json文件(就是刚才输入的些东西)。

{
  "name": "hookhook",
  "version": "1.0.0",
  "description": "heyhook",
  "main": "three.js",
  "scripts": {
    "test": "make test"
  },
  "keywords": [
    "laughter8888"
  ],
  "author": "laughter",
  "license": "ISC"
}

发布模块

加载的模块从哪来的呢——也是别人发布的,所以同样可以通过npm工具发布模块。

  • 注册
    所有npm都是发布在 https://www.npmjs.com/ 上面的,所以在发布之前,需要到 npmjs 上去注册一个账号,才有权限发布自己定义模块。

image.png

  • 激活账号
    注册之后,会发个邮件到邮箱,要激活一下,不然无法发布。

image.png

  • 登录
npm adduser

image.png

登录成功!

  • 发布
    登录成功之后就可以发布了。
npm publish

image.png

发布成功。

npm表示love you!

image.png

使用淘宝 NPM 镜像

npm服务器在国外,用起来是比较慢的,所以可以使用使用淘宝 NPM 镜像。

淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

  • 安装CNPM
    全局安装cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org

image.png

  • 检测安装
    和npm检测安装类似。
cnpm -v

  • 安装模块
    和npm差不多,
$ cnpm install [name]
  • 发布
    cnpm 本质上是复制库,它只负责从源库定期复制国内库,所以不支持通过 cnpm publish 发布到复制库上。
    要发布,还是要通过 npm 发布到源库,然后耐心等待复制库同步。
  • 官方地址
    更多信息可以查阅:http://npm.taobao.org/
目录
相关文章
|
3月前
|
JavaScript 前端开发 API
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
|
3月前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之node-export
prometheus 监控 node-exporter
|
2月前
|
缓存 资源调度 JavaScript
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
46 0
|
3月前
|
存储 JavaScript
Nodejs的npm包管理器快速入门
介绍Node.js的npm包管理器的快速入门,包括包的概念、结构、描述文件、npm常用命令如安装、搜索、移除软件包,以及如何处理常见的npm工具部署错误。
68 2
Nodejs的npm包管理器快速入门
|
2月前
|
JavaScript 前端开发
【干货分享】JavaScript学习笔记分享
【干货分享】JavaScript学习笔记分享
58 0
|
3月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
4月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
2071 verbose node v16.6.0 2072 verbose npm v7.19.1或者 no such file or directory, lstat ‘D:\wor
该博客文章提供了解决在使用npm版本7.19.1时出现的"no such file or directory"错误的具体方法,建议通过降级npm到6.14.8版本来解决问题,并确认了该方法可以成功安装node_modules。
2071 verbose node v16.6.0 2072 verbose npm v7.19.1或者 no such file or directory, lstat ‘D:\wor
|
4月前
|
缓存 JavaScript 前端开发
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
这篇文章介绍了如何解决npm版本与Node.js版本不兼容的问题,提供了查看当前npm和Node.js版本的步骤,以及如何根据Node.js版本选择合适的npm版本并进行升级的详细指导。
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
|
4月前
Mac卸载 Node npm,升级 Node
Mac卸载 Node npm,升级 Node
69 0

推荐镜像

更多