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

Stella981
• 阅读 773

介绍

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

Node.js学习笔记(二、NPM 使用)
当前路径下生成了一个目录node_modules和一个文件package-lock.json。
node_modules目录:

Node.js学习笔记(二、NPM 使用)
express目录:

Node.js学习笔记(二、NPM 使用)
package.json文件:

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

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

Node.js学习笔记(二、NPM 使用)
卸载后,到 /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也是可行的。

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

$ 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 上去注册一个账号,才有权限发布自己定义模块。

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

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

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

  • 登录

    npm adduser

Node.js学习笔记(二、NPM 使用)
登录成功!

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

    npm publish

Node.js学习笔记(二、NPM 使用)
发布成功。

npm表示love you!
Node.js学习笔记(二、NPM 使用)

使用淘宝 NPM 镜像

npm服务器在国外,用起来是比较慢的,所以可以使用使用淘宝 NPM 镜像。
淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

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

  • 检测安装
    和npm检测安装类似。

    cnpm -v

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


参考:

【1】、https://www.w3cschool.cn/nodejs/nodejs-npm.html
【2】、http://how2j.cn/k/nodejs/nodejs-npm-publish/1772.html
【3】、http://how2j.cn/k/nodejs/nodejs-cnpm/1771.html
【4】、https://www.runoob.com/nodejs/nodejs-npm.html

本文分享 CSDN - 三分恶。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
Vue 学习记录(一)
环境准备1.node.js  2.vuecli安装配置环境1.下载node.js,使用默认配置安装。2.使用npm命令安装国内下载镜像(可选)  cmd:  npminstall g cnpm registryhttps://registry.npm.taobao.org  tips:在命
Stella981 Stella981
3年前
Linux简单安装Node.js
\理论通用<br/最近闲来无聊。打算把博客迁移到本地服务器。于是就有了这篇文章。<br/其实我写这段话只是为了凑字数而已……\\安装Node.js和npm.下载Node.js\\\wgethttps://npm.taobao.org/mirrors/node/la
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这