40 # npm 的使用

news2024/11/17 1:54:21

npm

3n:

  • nrm:node 中源管理工具
  • nvm:node 中的版本管理工具
  • npm:node 的包管理器,管理的都是 node 的模块

第三方模块

分两种:

  • 全局模块:只能在命令行中使用,任何路径都可以
  • 本地模块:开发或者上线使用的

包的初始化工作

npm init
npm init -y

全局模块的安装

npm install nrm -g --registry https://registry.npm.taobao.org

安装完会有一个指向

C:\Program Files\nodejs\nrm -> C:\Program Files\nodejs\node_modules\nrm\cli.js

在这里插入图片描述

nrm 不在环境变量 path 里,还能直接使用的原理:

将当前安装的模块放到 npm 目录下(快捷键),当执行 nrm 命令时,会自动执行 cli.js

查看 npm 的所有配置信息

npm config list

在这里插入图片描述

nrm 使用可以查看我这篇:使用 nrm 镜像管理工具进行 npm 源管理

自己编写一个全局模块

实现下面命令在控制台执行

kaimo 1 2 3 4 5 6

目前执行肯定是不行的:
在这里插入图片描述
按照下面去实现一下

  1. 先初始化包,新建 my-kaimo-pack 包,下面初始化项目
npm init -y

在这里插入图片描述

  1. 然后创建 bin 的配置,新建 bin 文件夹,里面添加 kaimo.js,在 package.json 里配置 bin 的配置
"bin": {
    "kaimo": "./bin/kaimo.js"
},

在这里插入图片描述

  1. kaimo.js 文件里添加 #! /usr/bin/env node 这行放到头部(就是我们前面分析 require 源码里提到的 Shebang),标明以 node 的方式来执行
#! /usr/bin/env node

console.log("进入 bin 下的 kaimo.js 文件");

console.log(process.argv.slice(2).reduce((x, y) => Number(x) + Number(y)));
  1. 把包放到 npm 全局中(方式一:全局安装,方式二:使用 npm link

这里使用 npm link,它能够避免重复且繁琐的打包发布操作,给开发调试带来便捷,而且使用方法简单。使用 npm linkkaimo.js 模块创建成本地依赖包。

npm link

在这里插入图片描述

在这里插入图片描述

  1. 执行 kaimo 1 2 3 4 5,可以看到就能执行成功了

在这里插入图片描述

  1. 解除 link
npm unlink

在这里插入图片描述

安装项目包(开发/生产)

可以使用 npm info xxx 查看包信息

npm i webpack --save-dev
npm i vue
npm i jquery@3.0.0
  • dependencies:项目依赖(–save)
  • devDependencies:开发依赖(–save-dev)
  • peerDependencies:同版本依赖(vue vue-template-compiler)

如果我们没有安装 jquery,又配置了下面的依赖,就会提示

"peerDependencies": {
    "jquery": "^3.0.0"
}

在这里插入图片描述

  • bundleDependencies:打包依赖

使用 npm pack 打包时会打进去

"bundleDependencies": [
    "jquery"
]

在这里插入图片描述
我们可以看到就 jquery 打包进来了
在这里插入图片描述

  • optionalDependencies:可选依赖(可装可不装)

版本问题

  • major.minor.patch:表示破坏性更新.增加功能/修订大版本中的功能.小的bug
  • ^2.0.0:限制大版本
  • ~2.3.0:限制中版本
  • >=
  • <=
  • 1.0.0-2.0.0
  • alpha:内测版本 beta:公测版本 rc:最终测试版 (2.1.0-beta.1)

运行脚本问题

添加脚本

"scripts": {
    "kaimo": "node ./bin/kaimo.js"
},

传参加 --

npm run kaimo -- 1 2 3 4 5

在这里插入图片描述

在看个例子:先安装 mime

npm i mime

在这里插入图片描述
添加脚本:

"scripts": {
    "kaimo": "node ./bin/kaimo.js",
    "mime": "mime"
},

在这里插入图片描述

这里为什么 npm run mime -- a.js 可以,mime a.js 不行?

执行 npm run env,可以看到 Path 变量里添加了 .bin

在这里插入图片描述

正因为默认运行 npm run 时会将 node_modules 下的 .bin 目录放到全局下,所有可以使用当前文件下的命令。

另外一种方案就是使用 npx 命令:npm 5.2 之后提供的(这个命令没有 npm run 好管理),npx 可以去下载包,下载完毕后执行,执行后会删除包,所以每次都是拿的最新包去执行

npm uninstall mime
npx mime a.js

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/682546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端高频JS面试题(附答案+视频讲解)

高频前端js面试题总结 对应的视频讲解位置 2023前端高频面试题-JS高频面试题&#xff08;上&#xff09;_哔哩哔哩_bilibili 目录 1. var let const 的区别&#xff1f; 2. javascript 有哪些基础数据类型&#xff1f; 3. null和undefined区别 4. 与 的区别&#xff1f;…

二十三种设计模式第十二篇--组合模式

组合模式是一种结构型设计模式&#xff0c;它允许将对象组合成树形结构来表示整体-部分的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 在组合模式中&#xff0c;有两种类型的对象&#xff1a;叶子对象和组合对象。叶子对象表示树结构中的叶子节点&…

为什么需要建设海绵城市?

海绵城市&#xff0c;是新一代城市雨洪管理概念&#xff0c;是指城市在适应环境变化和应对雨水带来的自然灾害等方面具有良好的“弹性”&#xff0c;也可称之为“水弹性城市”。其本质上是一种生态化的城市发展模式&#xff0c;其核心是将城市建设与生态环境保护相结合。 为什么…

二.《UE4奥丁》解密哈希ID

哈希表概念 1.相信大家经常在UE4或者UE5游戏逆向中遇到下面的代码段 $ > > 41:8B42 0C > mov eax,dword ptr ds:[r10C] > $4 > 3B05 AE589B04 > cmp eax,dword ptr ds:[7FF7B68B74F4] …

DeFi(去中心化金融),定义金融服务的未来

在数字化时代&#xff0c;区块链技术的发展引领了金融服务的全新变革。去中心化金融&#xff08;DeFi&#xff09;作为区块链技术的重要应用之一&#xff0c;正在重新定义传统金融服务的未来。本文将探讨DeFi的概念、优势以及对金融服务的影响&#xff0c;并展望其在未来的发展…

Linux上配置安装Nginx

Linux上安装配置Nginx 前言安装参考 前言 在前文中介绍了Nginx&#xff1a;Nginx入门 现在我们来试着在服务器上安装以下Nginx&#xff0c;以下操作使用的版本为1.20.0 下载地址为&#xff1a;Nginx官网下载地址 安装 先把包丢上去&#xff0c;我这里使用的是XFtp连接的服…

【Spring】— Spring MVC简单数据绑定(二)

接上文&#xff1a;【Spring】— Spring MVC简单数据绑定&#xff08;一&#xff09; 目录 2.3绑定POJO类型 2.3绑定POJO类型 在使用简单数据类型绑定时&#xff0c;可以很容易地根据具体需求来定义方法中的形参类型和个数&#xff0c;然而在实际应用中&#xff0c;客户端请求…

java学习记录之MySql二

1 mysql回顾 1.1 DDL 数据定义语言&#xff1a;结构  数据库database create database 数据库名称 character set 字符集 [collate 比较]; drop database 数据库名称; alter database 数据库名称 character set 字符集 …;  表 create table 表名(字段描述 , … ); 字段描述…

优雅地在高版本Android将文件保存到磁盘

Android对于文件存储的限制正在日趋严格。事实上&#xff0c;从Android 11&#xff08;Android R&#xff09;开始&#xff0c;那些传统的文件保存和读取方式统统失效了。 而高版本Android中存/取文件操作&#xff0c;百度到的内容是可行的&#xff0c;但是非常麻烦&#xff0c…

AIGC时代,基于云原生 MLOps 构建属于你的大模型(下)

为了满足企业在数字化转型过程中对更新迭代生产力工具的需求&#xff0c;灵雀云近日推出了Alauda MLOps 解决方案&#xff0c;帮助企业快速落地AI技术、实现智能化应用和服务。 AIGC大模型已成为企业创新引擎 随着ChatGPT的爆火&#xff0c;越来越多的人考虑使用AI来提升我们日…

python机器学习——回归模型评估方法 回归算法(线性回归、L2岭回归)

目录 回归模型评价方法【回归】线性回归模型1.线性模型2.线性回归3.损失函数&#xff08;误差大小&#xff09;4.解决方法1) 最小二乘法之正规方程2) 最小二乘法之梯度下降 5.代码实现5.模型保存与加载6.特点 实例&#xff1a;波士顿房价【回归】带有L2正则化的岭回归 回归模型…

C++初阶之类和对象(上)

类和对象&#xff08;上&#xff09; 1、面向过程和面向对象初步认识2、类的引入3、类的定义4、类的访问限定符及封装4.1 访问限定符4.2 封装 5、类的作用域6、类的实例化7、类对象模型7.1 如何计算类对象的大小 8.this指针8.1 this指针的引出8.2 this指针的特性8.3. C语言和C实…

Python开发工具PyCharm 2023.1发布,这些新功能都值得期待!

PyCharm 2023.1 现已正式发布&#xff01;今年的第一个主要版本带来了对远程Jupyter Notebook的支持、对新UI的增强、改进的泛型类型推断等。 JetBrains PyCharm是一种Python IDE&#xff0c;其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外&#xff0…

SpringBoot 使用 Testcontainers 进行容器化集成测试

SpringBoot 使用 Testcontainers 进行容器化集成测试 容器化集成测试是测试应用程序与其依赖项之间的集成&#xff0c;其中依赖项以容器的形式运行。SpringBoot提供了Testcontainers来测试应用程序与依赖项之间的集成&#xff0c;本文将介绍如何使用Testcontainers进行容器化集…

详细解说一次性低代码和持续化低代码的关键区别在哪里

为什么很多开发团队吐槽低代码开发平台&#xff0c;其中大致归结了几个方面的原因&#xff1a; 1、使用过后会降低对技术的依赖度&#xff0c;工具人的倾向更加严重 2、目前大部分的低代码都是一次性的低代码&#xff0c;仅仅是在第一次构建模型的时候&#xff0c;可以生成一…

CDC介绍

CDC介绍 1 CDC Change Data Capture&#xff1a;定义了一种场景&#xff0c;即识别并捕获数据库表中数据的变更&#xff0c;并交付给下游进一步处理。CDC是对针对行级数据记录的。其中数据的变更信息&#xff0c;即 CDC 的数据结构&#xff0c;包括变更是什么样的操作&#x…

《JDK8特性深入讲解》学习笔记

Lambda表达式 如果不适用lambda表达式的话&#xff0c;可以使用匿名内部类&#xff0c;但是代码会显得有点多 lambda表达式其实就是匿名内部类 Lambda表达式简化了匿名内部类的使用&#xff0c;语法更加简单。 语法规则 (参数类型 参数名称) -> {代码体; } Lambda表达…

Unreal 5 实现Data Table 数据表格的使用

数据是一个游戏重要的组成部分&#xff0c;按分工&#xff0c;数据会交由策划去配置&#xff0c;所以&#xff0c;你的数据不可能直接写到蓝图里面&#xff0c;而是有一个专门的数据表格去配置。 大家通用的方式是策划在Excel内编辑完成&#xff0c;然后通过工具生成游戏需要使…

RabbitMQ安装以及SpringBoot整合RabbitMQ

SpringBootMQ整合Rabbit RabbitMQ安装以及SpringBoot整合 1、Docker安装RabbitMQ #拉取rabbitmq镜像 docker pull rabbitmq#启动RabbitMQ docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq#安装图形化插件 #进入容器 docker exec -i…

ubantu16.04搭建Qt环境

目录 ubantu16.04搭建Qt环境 下载opensource 安装qmake 安装g以及依赖库 配置环境 编译原码 安装make 查看qmake是否安装 配置环境变量 qmake编译c/c代码 安装qtcreator Linux编译Qt代码 ubantu16.04搭建Qt环境 下载opensource 「下载 qt-everywhere-opensource-s…