web前端开发之JavaScript:npm简介

举报
运气男孩 发表于 2020/08/30 23:42:53 2020/08/30
【摘要】 npm简介

包简介

单个js文件就是一个模块,放文件夹里面就是package。报就是将一组相关的模块组合到一起,行程一组完成的工具。CommonJS的包规范由包结构包描述文件两个部分组成。包描述文件用于表达非代码相关的信息,它是一个json格式的文件,位于包的根目录下,是包的重要组成部分。json文件里不能写注释。

包实际上就是一个压缩文件,解压以后还原为目录。符合规范的目录,应该包含如下文件:

-package.json 描述文件

-bin 可执行二进制文件

-lib js代码

-doc 文档

-test 单元测试

 package.json

它位于模块的目录下,用于定义包的属性。该文件中定义了当前项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据 ) 。package.json文件就是一个JSON对象,该对象的每一个成员就是当前项目的一项设置。

package.json中的字段   json文件中不能有注释

------name(包名)、description(描述)、version(版本)、keywords(关键字)、maintainers(主贡献)、contributors(贡献者)、bugs(bug地址)、licenses(协议)、repositories(仓库git地址)、dependencies(依赖)、homepage(主页)、os(系统)、cpu、engine(引擎)、builtin、directories、implements、scripts、author、bin(可执行文件)、main(包的主要的文件)、devDependencies。


NPM简介

 NPM(Node Package Manager),npm帮助node完成第三方模块的发布、安装和依赖npm是javaScript世界的包管理工具并且是Node.js平台的默认包管理工具,通过npm可以安装、共享、分发代码,管理项目依赖关系。简单来说就是一个个别人写好的模块,通过下载引用后,就可以直接使用其API,帮助自己更快的开发,它被集成在node中,安装node便会自动安装nom。


 常用的命令

  • npm -v  --查看版本

  • npm

  • npm search 包名

  • npm install 包名 --install可以简写为i

  • npm install 包名 -g  --全局安装(一般都是一些工具)

  • npm init  --初始化命令,会在目录下创建package.json。

  • npm version --查看所有模块的版本

  • npm remove 包名 --删除包,可以简写为npm r 包名

  • npm install 包名 --save --安装包并添加到依赖中

  • npm install --下载当前项目所依赖的包

  • npm install 文件路径 --从本地安装

  • npm install 包名 -registry=地址  --从镜像源安装

  • npm config set registry 地址  --设置镜像源



    node的安装分为全局模式和本地模式。一般情况下会以本地模式运行,包会被安装到Node的安装目录下的node_modules下。

全局安装命令为npm install -g moduleName。或者使用npm set global=true来设定安装模式,npm get global可以查看当前使用的安装模式。
示例:npm install express默认会安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本,如 npm install express@3.0.6

npm install <name> -g将包安装到全局环境中但是代码中,直接通过require()的方式是没有办法调用全局安装额包的。全局的安装时供命令行使用的


通过package.json进行npm安装

如果我们的项目依赖了很多package,一个一个地安装那将是个体力活。我们可以将项目依赖的包都在package.json这个文件里声明,然后一行命令搞定:

npm install

使用场景

常见的使用场景有以下几种:

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。

  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。命令如下,出现版本提示表示安装成功:

 配置CNPM

    因为npm的服务器在国外,在网络状态不好的情况下引入一个模块会因为网络延迟而失败,可以使用淘宝的镜像cnpm,针对npm,淘宝在国内镜像了一份npm包管理工具,可在国内直接下载,更快,缺点就是可能无法实时更新

命令行代码:npm install -g cnpm --registry=https://registry.npm.taobao.org


 node搜索包的流程

    通过npm下载的包都放到node_modules文件夹中,直接通过包名引入即可使用。如var math = require("math"),然后math.add(x,y)。node在使用模块名字来引入模块时,它首先会在当前目录的node_modules中寻找是否含有该模块-如果有则直接使用,如果没有则去上一级目录的node_modules中寻找-如果有则直接使用,如果没有则再去上一级目录寻找,直到找到为止,一直到找到磁盘的根目录,如果依然没有,则报错。


书山有路勤为径,学海无涯苦作舟。下次见!





【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。