WEB前端NodeJS—npm

node package manager,node包文件管理工具,当下载完node时会自己携带npm

npm初体验

传格式化时间的统做法

  1. 创建格式化时间的自定义模块
  2. 定义格式化时间的方法
  3. 创建补零函数
  4. 从自定义模块中导出格式化时间的函数
  5. 导入格式化时间的自定义模块
  6. 调用格式化时间的函数
    WEB前端NodeJS—npm_第1张图片

高级做法

  1. 使用 npm 包管理工具,在项目中安装格式化时间的包 moment
  2. 使用require() 导入格式化时间的包
  3. 参考 moment 的官方 API 文档对时间进行格式化

WEB前端NodeJS—npm_第2张图片

常用命令

# 查看npm版本
npm --version
# 更新npm
npm install --global npm
# 查看帮助
npm --help|-h	# 查看所有命令的帮助
npm 命令 --help|-h	# 查看某种命令的帮助


# 新建项目
npm init		# 创建package.json文件(有向导)
npm init -y		# 跳过向导,直接新建

# 下载
npm install 包名	# 普通下载,自动下载最新版本。可用空格分隔安装多个包
npm install 包名@2.22.1	# 通过@指定版本号
npm install --save 包名	# 下载时把依赖记录到package.json中
npm install		# 一次性把package.json包中dependencies节点指定的依赖包下载完

# 删除
npm uninstall 包名	# 删除指定的包,卸载的包自动从package.json的dependencies移除,但依赖的包会保存
npm uninstall --save 包名	# 删除时把依赖的包也删除

# npm配置信息
npm config list	# 获取所有配置
npm config get registry	# 获取某一配置,如registry表示镜像源
npm config set registry https://registry.npm.taobao.org	# 修改配置,这里修改了镜像

# 查看包
npm ls|list		# 查看所有本地项目包
npm ls|list -g	# 查看所有本地全局包
npm show|view|info 包名	# 查看远程包的详细信息,内容很多
npm show|view|info 包名 version	# 查看远程包的最新版本
npm show|view|info 包名 versions	# 查看远程包的所有版本

装包后多了哪些文件

  • 初次装包完成后,在项目文件夹下多一个叫做node_modules的文件夹和package-lock.json的配置文件。其中:
    • node_modules文件夹用来存放所有已安装到项目中的包。require()导入第三方包时,就是从这个目录中查找并加载包。
    • package-lock.json配置文件用来记录node_modules目录下的每一个包的下载信息,例如包的名字、版本号、下载地址等。
  • 注意:不要手动修改node_modulespackage-lock.json文件中的任何代码,npm包管理工具会自动维护它们。

包配置文件

概述

  • npm 规定,在项目根目录中,必须提供一个叫做package.json的包管理配置文件。用来记录与项目有关的一些配置信息。例如:
    • 项目的名称、版本号、描述等
    • 项目中都用到了哪些包
    • 哪些包只在开发期间会用到
    • 那些包在开发和部署时都需要用到

package.json

  • 多人协作的问题:

    WEB前端NodeJS—npm_第3张图片

  • 如何记录项目中安装了哪些包:

    • 在项目根目录中,创建一个叫做package.json的配置文件,即可用来记录项目中安装了哪些包。从而方便剔除node_modules目录之后,在团队成员之间共享项目的源代码。
    • 所以,如果node_modules删除了也没关系,只需要使用npm install命令就会自动把package.json中的dependencies依赖包重新下载下来。
    • 今后在项目开发中,一定要把node_modules文件夹,添加到.gitignore忽略文件中。
  • 快速创建package.json(包描述文件,像说明书一样):

    • npm提供了一个快捷命令npm init -y,可以在执行命令时所处的目录中,快速自动创建 package.json
    • 上述命令只能在英文的目录下成功运行。所以,项目文件夹的名称一定要使用英文命名,不要使用中文,不能出现空格。
    • 运行npm install --save xxx命令安装包的时候,npm 包管理工具会自动把包的名称和版本号,记录到 package.json 中。
  • dependencies节点:package.json文件中,有一个dependencies节点,专门用来记录您使用npm install命令安装了哪些包。每当安装第三方包时,在命令后面加``–save即可在dependencies中记录依赖的包,如npm install jquery --save`。

    WEB前端NodeJS—npm_第4张图片

  • devDependencies节点:

    • 如果某些包只在项目开发阶段会用到,在项目上线之后不会用到,则建议把这些包记录到 devDependencies节点中。
    • 与之对应的,如果某些包在开发和项目上线之后都需要用到,则建议把这些包记录到 dependencies 节点中。
    • 您可以使用如下的命令,将包记录到devDependencies节点中:

    WEB前端NodeJS—npm_第5张图片

package-lock.json

  • **概述:**npm5之前没有这个文件,5以后才有。npm5后的版本安装包不需要加--save参数,npm会自动生成或更新package-lock.json文件:

  • 作用:

    • 它会保存node_modules中所有包的信息(版本,下载地址),这样重新npm install时速度会提升
    • "lock"是锁的意思,它可以锁定版本。比如,项目依赖了1.1.1版本,重新npm install时会下载最新版本而不是1.1.1,而package-lock.json的就可以锁定版本号,防止自动升级。

npm使用时的问题

解决npm被墙下包速度慢的问题

  • 在使用 npm 下包的时候,默认从国外的 https://registry.npmjs.org/ 服务器下载,此时,网络数据的传输需要经过漫长的海底光缆,因此下包速度会很慢

  • 淘宝npm镜像服务器:

    WEB前端NodeJS—npm_第6张图片

  • 更新淘宝的npm镜像:

    • 每次手动添加:npm install jquery --registry=https://registry.npm.taobao.org

    • 通过配置文件一次性添加(以后所有下载命令都是用淘宝镜像):

      npm config set registry https://registry.npm.taobao.org

      WEB前端NodeJS—npm_第7张图片

  • nrm:为了更方便的切换下包的镜像源,我们可以安装 nrm 这个小工具,利用 nrm 提供的终端命令,可以快速查看和切换下包的镜像源。

    WEB前端NodeJS—npm_第8张图片

你可能感兴趣的:(前端,#,NodeJs,前端,npm,node.js)