一、NPM 简介

1.1 是什么

npm(node package manager):是一个命令行工具

1.2 能干嘛

下载 node 所需第三方模块,npm 是NodeJS项目模块管理工具

1.3 去哪儿下

安装 Node.JS 自带 npm 所以不用重新安装,直接使用。

检查版本,是否安装:


npm -v


二、NPM 语法

命令

  • 查看:npm list list 可以简写为 ls
  • 安装:npm install 模块 或 模块@版本号 [安装可选参数] install 可以简写为 i
  • 卸载:npm uninstall 模块

安装参数

  • --save 记录生产环境所需模块(默认) 简写为 -S
  • --save-dev 记录开发环境所需模块 简写为 -D
  • -g 该模块可在命令行运行(global)

多学一招:

// 都安装
npm install
// 只安装生产环境
npm install --production
// 看全局目录所在位置
npm config list

三、NPM 使用

3.1 初体验

初始化 npm

npm init -y

安装 MIME 模块

npm install mime

使用

// 1. 引入第三方模块 mime (判断文件 MIME 类型)
var mime = require('mime')
// 2. 使用
var img = 'xxx.png'
// 获取MIME类型
console.log(mime.getType(img));                    // ⇨ 'image/png'
// 获取文件扩展名
console.log(mime.getExtension(mime.getType(img))); // ⇨ 'null'

全局使用

查看全局目录,命令行输入:

npm config list

找到全局路径:

prefix = "C:\\Users\\AgoniLay\\AppData\\Roaming\\npm"

安装全局:

npm install mime -g

安装在生产环境中:

npm install mime --save
{
    "dependencies": {
        "mime": "^2.5.2"
    },
}

安装在开发环境中:

npm install jquery --save-dev
{
    "devDependencies": {
        "jquery": "^3.6.0"
    }
}

仅安装生产环境中的依赖:

npm install --production

四、NPM 模块版本控制(了解)

科普软件版本含义:

  • aplha版 - 内测版(功能不全,bug多)
  • beta版 - 公测版(功能不全,发骚友准备,依旧存在bug)
  • rc版 - 预览版(功能不再增减)
  • stable版 - 用户可用

主版本号.次版本号.修改版本号

  • ^ :用户使用该版本后,最多升级到【修改版】最新
  • ~ :用户使用该版本后,最多升级到【次版本】最新
  • * :用户使用该版本后,最多升级到最新版本

五、NPM 源管理

通过 npm 命令下载会到国外服务器获取

缺点:下载速度慢

解决:切换到国内服务器

nrm

// 安装
npm install nrm -g 
// 查看  ls 为 list 缩写
nrm ls
// 切换服务器名
nrm use 服务器名
// 测速
nrm test

六、NPM 自定义脚本命令(重点,难点)

通过修改 package.json 文件的 scripts 自定义脚本命令

必须严格遵循格式

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "a": "echo 666",
    "start": "node ./mime_text.js"
},
npm run a
    // 666
npm start
    // 运行

七、NPM 包自定义发布(能跟着笔记敲)

  1. 自定义模块,创建文件夹,打开终端 cd 到该文件夹下 初始化
npm init -y

index.js

var fn = {
    name: 'phpopenfather',
    school: 'php@itcast',
    say: function() {
        console.log('悟空');
        return un;
    }
}

module.exports = fn
  1. 设置package
  • name - 模块名
  • description - 描述
  • keywords - 关键词
{
    "name": "itcast-php-agonilay",
    "version": "1.0.0",
    "description": "this is demo2",
    "main": "index.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
    },
    "keywords": ["itcast", "phpdemo"],
    "author": "AgoniLay",
    "license": "ISC"
}
  1. 打开 http://npmjs.com 注册/登录 账号
    本地登录提交(切记提交自己的包必须切换到国外服务器,下载再切换过来)
// 切换到国外服务器
nrm use npm
// 登录
npm login
    >Username: agonilay
    >Password:
    >Email: (this IS public) 1394310259@qq.com
    >Logged in as agonilay on https://registry.npmjs.org/.
// 提交
npm publish
    // 版本号不能是 1.0.0
  1. 使用
npm i itcast-php-agonilay

test.js

var test = require('itcast-php-agonilay')

console.log(test);
console.log(test.name);
test.say();

测试运行:

npm text.js
    
// 结果
{ name: 'phpopenfather', school: 'php@itcast', say: [Function: say] }
phpopenfather
悟空

nodemon 自动重启服务(第三方模块)

1、简介

通过 nodemon 检测文件修改自动重启

2、使用

// 安装
npm install nodemon --save-dev
// 运行
nodemon index.js

moment 日期处理模块(第三方模块)

1、简介

自己封装模块或使用第三方模块(http://momentjs.cn/

2、使用

  1. 初始化项目
npm init -y
  1. 安装 moment
npm install moment
  1. 使用
var moment = require('moment');
moment().format();

需要使用那种格式去 http://momentjs.cn/ 查看