node基础_npm简介
NPM(Node Package Manager)
CommonJS包规范是理论,NPM是其中一种实践。
对于Node而言,NPM帮助其完成了"第三方模块"的发布、安装和依赖等。借助NPM,Node与第三方模块之间形成了很好的一个生态系统。
npm等于说相当于一个node包管理平台,你可以将你的模块也放上去让大家使用。
NPM命令
npm –v:查看版本
npm:帮助说明
npm search 包名 :搜索模块包
npm install :下载当前包所依赖的包,也就是根据你包的package里面的版本信息去自动下载你这个包所依赖的其它包,不用你自己去下载。
npm install 包名 :在当前目录安装包
npm install 包名 –g : 全局模式安装包(全局安装的包一般都是一些工具,不是在项目里面使用的,而是在系统上用的,比如编译工具啥的)
npm remove 包名 :删除一个模块
npm install 文件路径 :从本地安装
npm install 包名 –registry=地址 :从镜像源安装
npm config set registry 地址 :设置镜像源
npm install 包名 --save :添加包,并在package.json文件里添加依赖项,也就是添加dependencies字段,用来表示你的包所依赖的其他包是什么。
比如:使用npm下载math模块
①桌面创建一个文件夹(math_npm),用来存放下载的math模块。
②在该文件夹下创建package.json文件,不然可能下载不到这个文件夹里面,而是下载到别的文件夹里了。可以直接通过node来创建package文件,这样比你自己手动写json对象快。步骤:打开命令提示符,将终端进入你创建的额文件夹里,然后你电脑是装了node环境的,所以就默认自带了npm管理工具的,只需要保证有网即可下载。输入npm init,然后依次设置字段名的值即可创建package.json文件。如:
可以看到文件夹里创建好了该文件了。
里面的package里面就是刚刚终端里输入的值。
npm search 包名 :可以搜索npm里面的包。
文件夹和package都有了就可以下载math包了。下载命令:npm install 包名
还是在文件夹的终端里打开命令提示符,输入指令下载。
文件夹里面就下载好这个包了。
测试使用:
在这个文件夹里面创建一个js文件(hello.js)
然后记事本打开编写如下代码:
然后在当前js所在文件夹的终端运行该js即可看到结果:
使用vscode代码编辑工具ide进行模块下载。
①新建一个文件夹math_npm,打开vscode,将此文件夹在vscode里打开:
②在这个文件夹下空白区域右键,选择在终端中打开,让命令提示符处于文件夹下:
如:
③创建package.json文件
在终端输入npm init后,跟着敲回车输入package的字段的值后,就创建好package.json文件了。
④然后,在终端里直接下载math模块即可,在终端输入npm search math
,然后即可在文件夹里看到下载好的包(node_modules)。
⑤然后使用这个下载的包,在math_npm文件夹下创建一个js文件(hello.js)
⑥在hello.js里引用这个模块即可,因为不是自定义的模块,所以不用加js后缀和./
⑦运行测试,要运行这个hello.js就有将终端定位在这个js文件的上一级文件夹里,hello.js这个文件的上一级就是根目录了,所以直接在hello.js这个文件右键即可打开终端即可:
⑧输入运行js的node指令即可
node 搜索包的流程
通过npm下载的包都是放到node_modules文件夹中的。
我们在同一个包里面要使用下载的包,直接通过包名引入即可,它会自动到你这包的node_modules文件夹里找。
node在使用模块名字来引入模块时,它会首先在当前目录中的node_modules文件夹里找是否有该模块,如果有则使用,没有就去上一级目录的node_modules文件夹里找,上一级没有node_modules文件夹或者是node_modules文件夹里没有该模块,则再去上一级找,直到找到硬盘的根目录为止,如果依然没有,则报错。注意,往上一级找是不会找同级的目录下的,只在同级找,如果他要的模块在同一级的某个文件夹下,那么它也是不会去里面找的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!