IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> NPM包管理工具 -> 正文阅读

[JavaScript知识库]NPM包管理工具

作者:token punctuation

npm(全程Node Package Manager,即node包管理器)是Node.js默认的,以JavaScript编写的软件包管理系统
安装完毕node后,会默认安装好npm,npm本身也是基于Node.js开发的软件。
查看本地系统是否安装了Node,可以使用node -v查看有版本号,则安装了node,否则自行安装;
使用npm -v可以查看npm的版本号。

Node官方网站http://nodejs.cn/可以下载node包,用于安装。如果下载较慢可以去https://mirrors.tuna.tsinghua.edu.cn/或者http://mirrors.ustc.edu.cn/搜索node按需下载。

NPM官方网站https://www.npmjs.com/ 可以查找所需的npm包,以及一些简单说明。

1、npm 安装配置(可选)

现在安装的新版本的nodejs可以直接使用默认配置的即可,不须再配置任何内容。

1. 配置环境变量:
Linux系统的环境变量
如果是配置全部用户都可以使用的在/etc/profile文件中配置
如果是配置当前用户则在~/.bashrc中配置
参考格式如下:
export PATH=/home/DEV_ENV/node-v16.13.1/bin:$PATH
保存并使用source 重新加载文件
source /etc/profile 或者 source ~/.bashrc

2、查看 node 版本

node -v

3、查看 npm 版本

npm -v

4、npm淘宝镜像(可选)

设置全局的npm淘宝镜像
npm config set registry https://registry.npm.taobao.org
也可以切换回默认全局镜像
npm config set registry https://registry.npmjs.org

5、npm 常用命令简写说明

方便统一和阅读,文中全部使用简写方式。

-g: 为 --global 的缩写,表示安装到全局目录里
-S: 为 --save 的缩写,表示安装的包将写入package.json里面的dependencies
-D: 为 --save-dev 的缩写,表示将安装的包将写入packege.json里面的devDependencies
 i: 为install的缩写,表示安装

6、npm 安装模块

npm init  # npm 初始化当前目录
npm i  # 安装所有依赖
npm i express  # 安装模块到默认dependencies
npm i express -g  # 会安装到配置的全局目录下
npm i express -S  # 安装包信息将加入到dependencies生产依赖
npm i express -D  # 安装包信息将加入到devDependencies开发依赖
npm i jquery@1.8.3  # 安装jquery指定的1.8.3版本

7、npm 卸载模块

npm uninstall express  # 卸载模块,但不卸载模块留在package.json中的对应信息
npm uninstall express -g  # 卸载全局模块
npm uninstall express --save  # 卸载模块,同时卸载留在package.json中dependencies下的信息
npm uninstall express --save-dev  # 卸载模块,同时卸载留在package.json中devDependencies下的信息

8、npm 更新模块

npm update jquery  # 更新最新版本的jquery
npm update jquery@2.1.0  # 更新到指定版本号的jquery
npm install jquery@latest  # 可以直接更新到最后一个新版本

9、 npm 查看命令

npm root  # 查看项目中模块所在的目录
npm root -g  # 查看全局安装的模块所在目录
npm list 或者 npm ls  # 查看本地已安装模块的清单列表
npm view jquery dependencies  # 查看某个包对于各种包的依赖关系
npm view jquery version  # 查看jquery最新的版本号
npm view jquery versions  # 查看所有jquery历史版本号(很实用)
npm view jquery  # 查看最新的jquery版本的信息
npm info jquery  # 查看jquery的详细信息,等同于上面的npm view jquery
npm list jquery 或 npm ls jquery  # 查看本地已安装的jquery的详细信息
npm view jquery repository.url  # 查看jquery包的来源地址

10、npm 其他命令

npm cache clean  # 清除npm的缓存
npm prune  # 清除项目中没有被使用的包
npm outdated  # 检查模块是否已经过时
npm repo jquery  # 会打开默认浏览器跳转到github中jquery的页面
npm docs jquery  # 会打开默认浏览器跳转到github中jquery的README.MD文件信息
npm home jquery  # 会打开默认浏览器跳转到github中jquery的主页
npm help <command>  # 可以查看某条命令的详细帮助,如:npm help install
npm help  # 查看所有命令

11、npm的作用

我们在安装项目所需的依赖包时、会将下载的依赖包的名称及版本信息自动添加到package.json文件中;传输代码时避免了node_modules文件过大的情况,我们将node_modules删除,在其他设备上,直接npm install,就可以通过package.json中保存的依赖包信息,自动装配node_modules文件。

12、package.json文件解析

普通字段

name:包名
version: 包的版本号
description: 包的描述
author: 包的作者
license: 包的许可证
main: 指定程序的主入口文件(默认设计模块根目录下面的index.js)

scripts 字段

package.json 文件中 scripts 字段,可以用于指定脚本命令,供 npm 直接调用

"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1"
},

(scripts中是配置执行命令,使用格式如下:npm run 命令)——以上代码意思:执行npm run test 则执行"echo \"Error: no test specified\" && exit 1"语句;

scripts 字段中的钩子

注:npm run 为每条命令提供了 pre- 和 post- 两个钩子(hook)。以 npm run test 为例,如果我们的 scripts 字段规定了 pretest 和 posttest

同理:我们可以自己配置:
  "scripts": {
    "prehello": "echo \" gagaga1 \" ", 
    "hello": "node -v",  // npm run hello则实际执行的是node -v查看node的版本
    "posthello": "echo \" gagaga2 \" "
  },

实际执行如下: 
[gagaga nodedir]$ npm run hello
> nodedir@1.0.0 prehello
> echo " gagaga1 "
 gagaga1 

> nodedir@1.0.0 hello
> node -v
v16.13.1

> nodedir@1.0.0 posthello
> echo " gagaga2 "
 gagaga2 

dependencies字段(生产依赖)和devDependencies字段(开发依赖)

dependencies
执行操作后,package.json里dependencies里保存相应依赖包,这些包在项目打包上线后依然需要使用项目才能正常运行,比如:axios等等

jquery依赖代码如下
npm install jquery -save  // 安装到生产依赖(dependencies)
npm uninstall jquery -save  // 从生产依赖(devDependencies)卸载

devDependencies
执行操作后,package.json里devdependencies里保存相应依赖包,这些包只在做项目的时候会使用到,在项目打包上线后不依赖于这些包项目依然可以正常运行。比如:gulp/webpack等等。

jquery依赖代码如下
npm install jquery -save-dev	//  安装到开发依赖(devDependencies)
npm uninstall jquery -save-dev	//  从开发依赖(devDependencies)卸载

npm包的版本用法

版本号的主流写法有:插入号( ^3.8.0 )、 波浪号( ~3.8.0 )、3.8.0,只要是能够被node-semver解析的写法都是可以的。

版本号写法大全

version 必须确切匹配这个version
>version 必须大于这个version
>=version 必须大于等于这个version
< version 必须小于这个version
<=version 必须小于等于这个version
~version 大约相当于version
^version 与version兼容
1.2.x 可以是1.2.0、1.2.1等,但不能是1.3.0
http://… URL作为依赖项
* 匹配任何版本
“”(空字符串) 匹配任何版本,和*一样
version1 - version2 相当于 >=version1 <=version2
range1 || range2 range1或range2其中一个满足时采用该version
git… Git URL作为依赖项
user/repo GitHub URLs
tag 一个以tag发布的指定版本,参考npm-tag
path/path/path 本地Paths

参考如下

{
    "dependencies": {
        "a": "1.0.0 - 2.9.9",   		相当于 >=1.0.1 <=2.9.9
        "b": ">=1.0.2 <2.1.2",        必须大于等于1.0.2版本且小于2.1.2版本
        "c": ">1.0.2 <=2.3.4",        必须大于1.0.2版本且小于等于2.3.4版本
        "d": "2.3.1",                 必须匹配这个版本
        "e": "~2.3.1",                约等于2.3.1,只更新最小版本,相当于2.3.X,即>=2.3.1 <2.4.0
        "f": "2.3.x",
        "g": "^2.3.1",                与2.3.1版本兼容,相当于2.X.X, 即>=2.3.1 < 3.0.0,不改变大版本号。
        "h": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0",
        "i": "http://asdf.com/asdf.tar.gz",   在版本上指定一个压缩包的url,当执行npm install 时这个压缩包会被下载并安装到本地。
        "j": "~1.2",   
        "k": "~1.2.3", 
        "i": "2.x",
        "m": "latest",             安装最新版本
        "n": "file:../dyl",         使用本地路径
        "o": "git://github.com/user/project.git#commit-ish"    使用git URL加commit-ish
    }
}

13、npm包的使用

1、在普通项目中我们可以通过const $ = requrie('jquery');直接引用;他会去node_modules目录中去把jquery直接加载过来
2、es6通过import导入包

(补充):yarn的介绍

npm install yarn -g
查看版本yarn --version
yarn init
yarn add 等于 npm install
yarn remove 等于 npm uninstall

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-07-05 23:27:51  更:2022-07-05 23:29:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:37:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码