npm 包Packages管理系统

一、npm

1.1 什么是npm

  • npm:Node Package Manager,Node包管理器。
  • 是Node.js默认的,以JavaScript编写的软件包管理系统。

1.2 npm工作原理

  npm的操作原理是各个官网使用npm publish把代码提交到npm的服务器,其他人想要使用这些代码,使用npm install就会从服务器下载下来,下载完的代码会出现在 node_modules 目录里,到这里就可以随意使用了。npm的初衷:JavaScript开发人员更容易分享和重用代码。
  如果一个项目中存在package.json文件中,那么用户可以直接使用npm install命令自动安装和维护当前项目所需的所有模块,在package.json文件中,开发者可以指定每个依赖项的版本范围,这样既可以保证模块自动更新,又不会因为所需模块功能大幅变化而导致项目出现问题,开发者也可以选择将模块固定在某个版本之上。

1.3 安装npm工具

  npm是Node.js默认的软件包管理系统,安装完毕node后,会默认安装好npm,npm本身也是基于Node.js开发的软件。
下载Node:。

  • 查看是否安装成功
    node -v
    npm -v
  • 全局安装npm
    npm install npm -g
  • 卸载
    npm uninstall

1.4 npm的常用指令

下面所有命令加 -g 表示全局
node :查看node.js版本
npm -v :通过查看版本,看npm是否安装成功
npm version :查看所有模块的版本
npm search 包名 :搜索包
npm install :使用 npm 命令安装模块,默认安装最新版本
npm install -g :全局安装模块,可以直接在命令行里使用
npm install @5.9.1 :(@后跟版本号)这样我们就可以下载指定的版本
npm update :使用 npm 命令更新模块到最新版本
npm uninstall :使用 npm 命令卸载模块
npm list -g :查看所有全局安装的模块
npm list :查看某个的版本号
npm install moduleName -save :# -save 在package文件的dependencies节点写入依赖。
npm install moduleName -save-dev : # -save-dev 在package文件的devDependencies节点写入依赖
dependencies:运行时的依赖,发布后,即生产环境下还需要用的模块
devDependencies:开发时的依赖。里面的模块是开发时用的,发布时用不到它,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的。

二、 Package

2.1 .package概述

  在Node.js中,模块是一个库或框架,也是一个Node.js项目。Node.js项目遵循模块化的架构,当我们创建了一个Node.js项目,意味着创建了一个模块,这个模块的描述文件,被称为package.json。
  package.json 文件其实就是对项目或者模块包的描述,里面包含许多元信息。比如项目名称,项目版本,项目执行入口文件,项目贡献者等等。npm install 命令会根据这个文件下载所有依赖模块。
package.json 文件创建有两种方式,手动创建或者自动创建。
手动创建:直接在项目根目录新建一个 package.json 文件,然后输入相关的内容。
自动创建:也是在项目根目录下执行 npm init,然后根据提示一步步输入相应的内容完成后即可自动创建。
  通常情况下如果 package.json内容出错,会导致项目出现bug,甚至阻止项目的运行。
  CommonJS的包规范允许我们将一组相关的模块组合到一起,形成一组完整的工具。我们可以将package理解为增强的模块。
  CommonJS的包规范由包结构和包描述文件两个部分组成。

  • 包结构:用于组织包中的各种文件。
  • 包描述文件:描述包的相关信息,以供外部读取分析。
    NodeJS中的package.json和package-lock.json文件: [link(https://jingzh.blog.csdn.net/article/details/102751441)

2.2 .包结构概述

包实际上就是一个压缩文件,解压以后还原为目录。
符合规范的目录,应该包含如下文件:
package.json:包描述的文件
bin:存放可执行二进制文件的目录
lib:存放依赖的js代码的目录
doc:存放包的文档信息的目录
test:存放单元测试的目录

2.3 Package.json 属性说明

  包描述文件用于表达非代码相关的信息,它是一个JSON格式的文件,即"package.json",其位于包的根目录下,是包的重要组成部分。
“package.json"中的包含以下常用的字段:
name:包的标识,即包名称。
description:描述包的用途。  
version:包的版本信息。
keywords:为包定义的关键字,程序员可以基于关键字来搜索与之匹配的包名。
maintainers:主要的贡献者信息,通常会将开发者的姓名和邮箱用多个object对象封装到一个数组中。
contributors:开发的贡献者成员,非主力开发人员,但这些人的确是有参与该项目的哟~
bugs:会提供bugs的提交地址,这样开发者可以基于你所提交的bugs进行及时的修复。
licenses:许可证授权信息,例如"MIT”。
repository:存储库相关的信息。
dependencies:当前包所依赖的插件信息。
homepage:包的主页信息。通常是某个包提供商的官网信息。
os:操作系统相关的信息。
cpu:CPU相关的信息
engine:指向引擎的相关信息。
builtin:构建工具信息。
directories:目录结构信息。
implements:工具信息。
scripts:脚本命令的相关信息。
author:作者信息
bin:可执行程序信息。
main:定义主文件信息,该文件在包中是真实存在的。例如: “main”: “./index”。main字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的index.js。
devDependencies:开发环境依赖的信息,通常记录了开发环境所依赖的软件版本信息。在实际生产环境中,开发环境可能并不被需要!只需提供运行环境即可~
不建议在json文件中写注释信息!可能导致错误出现!

2.4 package.json文件中版本号说明

  • “5.0.3” 表示安装指定5.0.3版本
  • “~5.0.3” 表示安装指定5.0.X最新版本
  • “^5.0.3” 表示安装指定5.X.X最新版本
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值