Npm

npm的目的:解决插件冲突,基于node环境,npm可以安装第三方库!

npm组成部分:

1.registry:入口(可以想象他是数据库,类似将第三方放进来,谁用就来数据库拿)

2.官网:https://www.npmjs.com/

3.Cli:需要熟悉的npm命令

了解registry:

该服务器是国外的,想要在国内使用,需要重新设置registry : --registry=http://registry.npmmirror.com提供了国内的registry地址,

设置方式(命令行输入):安装的包名 --registry=http://registry.npmmirror.com

检查是否设置成功:npm config get registry

node_modlues文件夹:

在node_modules下显示该依赖(记得刷新一下),该node_modlues文件夹因为文件夹过多,会忽略该目录的文件内容! 

要是下载的依赖包还有其他依赖,也会将依赖放在node_modlues;

本地安装的包带有CLI的,npm会将他下载到node_modlues/.bin下,使用命令 npx 命令名 进行调用

全局安装依赖和局部安装依赖:(重要:全局安装的包并非所有工程可用,他仅提供全局的CLI工具)

全局安装命令: npm install --global 包名    或者   npm i -g 包名

局部安装命令: npm install 包名    或者 npm i 包名 

package.json文件(记录当前工程的依赖):

可以解决问题:

  1.node_modues文件夹上传git等,会忽略该文件夹内容,可以进行还原(查看第四)

  2.区分开发依赖和生产依赖(如:需要在开发环境使用一个测试工具,需要下载该依赖) (查看第四)

  3.如果自身项目也是一个包,如何描述包的信息

如何创建package.json:

    1.可以手动直接新建文件:输入:package.json

    2.输入命令:git init ;直接创建package.json(需要输入各个配置项,可以使用: git init -yes  或者 git i -y (默认))

  3.了解配置文件中的信息 

  name:包的名称,必须是英文单词

       version:版本(如:3.1.2)版本规范:主版本号(程序发生重大变化),次版本号(程序发生小变化),补丁版本号(出现一些问题)

    4.区分开发环境和生产环境所用依赖

       dependencies = 生产环境;devDependencies = 测试环境 

如何安装生产环境

  npm i 包名   或者 npm i --save 包名    或者    npm i  -S 包名

如何安装开发环境  

npm i --save-dev 包名   或者   npm i -D 包名

注意:

版本号之前的 ^  叫做语义版本号(> 大于某个模板   ^主版本是对应的,后面次版本号和补丁版本号随意)

Npm脚本:

使用Npm需要使用很多个Npm命令,于是Npm提供了一个方法,可以解决这个问题,不需要在去每次都使用很多个命令了!

在package.json文件夹下,有一个scripts方法(要是没有就创建一个):

运行js文件命令:

1.node 文件名称.js(只监听一次就结束本次运行)

2.安装个第三方库,:npm i nodemon    运行命令:npx nodemon 文件名称.js(好处:实时监听)

scripts:{

  start : '配置启动要运行的文件'     如:   "start":"npx nodemon index.js"       

}

直接使用命令,就可以运行:npm run start

可以优化的一些命令:

不需要使用run:start,stop.test 

脚本中可以省略npx: "start":"nodemon 文件名称.js"       

Require()

如:var a = require(‘egg’)

egg这个文件指向哪里:如果没有写具体路径,会去node_modules文件夹下去找,先找文件在找文件夹,如果在文件中没有找到该‘egg’文件;那么去找egg文件夹,找到后,去找package.json--main的配置,找到main了,则调用该方法,如果没有找到main,那么去找index文件,如果也没找到则报错(需要注意:如果是node的内置模块,以上指向原理作废)

 package-lock.json(主要解决还原差异):了解

当A项目依赖B时(版本号是^1.2.3),但是B项目依赖C时(C:版本号是:6.0.0),这样会造成A项目出现问题,那么pachage-lock就把A项目下所有关联依赖的依赖都放进package-lock.json去进行保存

分辨开发环境和测试环境以及生产环境:(development(开发),production(生产),test(测试)

1.永久设置,通过环境变量进行配置(NODE_ENV = 变量名  ;  production = 开发/生产/测试)

2.临时设置

修改成一下环境变量地址(因为set 配置的环境变量地址,只是指向window,换个其他环境就不指向了,而这个库,可以解决这个问题)

安装:npm install --global cross-env  --registry=http://registry.npmmirror.com

直接使用就行,参考下面图片

  "scripts": {
    "test": "cross-env NODE_ENV=test node index1.js ",
    "start": "cross-env NODE_ENV=production node index1.js",
    "stop": "cross-env NODE_ENV=development node index1.js"
  },

 进行判断

这边的方法:process他是global的一个属性,包含当前运行node程序的信息,其中一个env就是一个对象,包含所有系统变量

 

 安装:

1.精确安装最新版本:

npm install --save-exact 包名    或者   npm install -E 包名

2.安装指定版本

npm install 包名@版本号 

 

查询

1.查询包安装路径

npm root [-g]

2、查看包信息

npm view 包名 子信息

3.查询安装包

查看当前的依赖:npm list   

查看项目所有依赖:npm list -g

查看项目依赖下的依赖:npm list -g  --depth=1

1=第一层级

2=第一层级的依赖  

 

 

更新:

检查哪些依赖需要更新:npm outdated -g 

更新的命令:npm update [-g] 包名

 更新所有:npm update

更新全局:npm update -g

更所一个: npm update 包名

 

卸载包:

删除命令: npm uninstall [-g] 包名

删除一个包:npm uninstall 包名

删除全局的包:npm uninstall -g 包名

 

查看配置项:

查看配置项命令:npm config ls [-l] [--json]

查看所有配置项: npm config ls

查看所有配置项:npm congig ls -l

查看所有配置项(json)格式:npm config ls --json    

获取配置项

npm config get 配置项

设置配置项

npm config set 配置项=值   (npm config set registry https://registry.npm.taobao.org/)

移出配置项

npm config delete 配置项

发布包:

 1.移出淘宝配置项

 2.npm官网注册账号,

 

     

 

 

 

posted on 2023-04-18 17:50  爱前端的小魏  阅读(151)  评论(0编辑  收藏  举报

导航