node.js相关的一些名词解释

一. Common.js模块规范

 node.js实现了Common.js模块规范化

 1. 什么是 CommonJS 规范?
     CommonJS 是为了实现 Javascript 的模块化,而制定的一套规范;
2. 为什么 Javascript 需要模块化?
    浏览器中的Javascript有没有实现模块化?(在一个JS文件中,能不能引用另外JS文件中的方法)
    有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。
3. 如何实现 Javascript 的模块化?
    为了统一大家编写模块时候的规则,方便各模块之间的依赖和调用,于是 CommonJS 规范就应运而生了。
4. 那么,CommonJS 模块化规范,到底是个什么东西??
    定义了什么是模块?
    一个JS模块中,如何引入其它的JS模块?
    一个JS模块中,如何向外暴露一些成员,供其它模块调用;
    如果没有类似于 CommonJS 的规范,行不行?
    只有大家遵守同样的规范,才能够协作开发,方便别人,同时也方便自己;

二. 包

  1. 英文名叫做 Packages,包是在模块基础上更深一步的抽象,目的是:方便分发推广基于 CommonJS 规范实现的 应用程序 或 类库;

  2. 包可以看作是 模块、代码 和 其它资源 组合起来形成的 独立作用域;

 符合规范的包结构

  1. 包都要以一个单独的目录而存在

  2. package.json 必须在包的顶层目录下

  3. package.json 文件必须符合 JSON 格式,并且必须包含如下三个属性:name(包的名字),  version, (包的版本号),main, (包入口文件)

  4. javaScript代码应该在lib目录下;

  5. 文档应该在doc目录下;

  6. 单元测试应该在test目录下;

  7. Node.js对包要求并没有那么严格,只要顶层目录下有package.json,并符合基本规范即可;

    包描述文件package.json的一些常用项

    name:包的名称,必须是唯一
    description:包的简要说明
    version:符合语义化版本识别规范的版本字符串
    keywords:关键字数据,通常用于搜索
    maintainers:维护者数组,每个元素要包含name、email、web等
    contributors:贡献者数组,格式与maintainers相同。包的作者应该是贡献者数据的第一个元素
    bugs:提交bug的地址,可以是网址或者电子邮件地址
    licenses:许可证数组,每个元素要包含type和url字段
    repositories:仓库托管地址数组,每个元素要包含type、url和path字段
    dependencies:包的依赖,一个关联数组,由包名称和版本号组成。
    devDependencies:开发依赖项,表示一个包在开发期间用到的依赖项

三. npm

npm的两层含义
  1. NPM 是一个 第三方模块的托管网站,指的就是https://www.npmjs.com/

  2. NPM 是Node的包管理工具(全名叫做 Node package manager),在安装Node时候,就已经自动安装了 NPM 这个管理工具;

安装和卸载全局包

  1. 什么是全局的包:通过 npm install 包名 -g 方式安装的包,都安装到了全局;一般全局的安装目录是C:\Users\自己的用户文件夹\AppData\Roaming\npm

  2. 如何安装一个全局的包:npm install i5ting_toc -g, 注意:这里的-g表示全局安装包的意思i5ting_toc为包名

  3. 注意:一般,只有一些工具,才有全局安装的必要性;

  4. 如果要全局卸载某个包,比如要卸载 i5ting_toc了,直接运行npm uninstall i5ting_toc -g就可以全局卸载包了!

安装和卸载本地包

  1. 什么是本地的包:跟着项目安装的包,叫做本地包;

  2. 如果拿到一个空项目,必须先初始化一个package.json的配置文件,npm init或者npm init -y

  3. 运行npm i 包名 --save去安装指定的包,本地安装的包,都安装到了node_modules的目录下

  4. 如果用的是npm 5.x的版本,可以不指定--save命令,如果用的是 npm 3.x 的版本,则需要手动指定 --save, 同时,--save有缩写形式,是:-S

  5. package-lock.json文件中记录了曾经装过的包的下载地址,方便下次直接下载包;

其它常用命令

  1. --save-dev它的缩写是-D

  2. 注意:dependencies节点,表示项目上线部署时候需要的依赖项;devDependencies节点,表示项目在开发阶段需要的依赖项,但是当项目要部署上线了,devDependencies节点中的包,就不再需要了!

  3. 注意:当使用npm i快速装包的时候,npm会检查package.json文件中,所有的依赖项,然后都为我们安装到项目中

  4. --production 表示只安装 dependencies 节点下,记录的包,不安装devDependencies节点下的包;当项目要上线了,才会使用--production命令

解决 npm 下载慢问题

  1. 默认,NPM在下载包的时候,连接的是国外的服务器,所以,有时候如果网速不是特别好,可能下载不下来包;此时,可以安装一个工具,叫做nrm,里面记录了好多下载NPM包的服务器地址,可以让我们方便的切换下载包时候请求的服务器;

  2. 运行npm i nrm -g(注意:只要是工具,一般都是全局 -g 安装)

  3. 当装完 nrm 之后,可以运行nrm ls 查看所有可用的服务器列表

  4. 可使用nrm use 服务器名称来切换下载包时候的服务器地址




猜你喜欢

转载自blog.csdn.net/zero________________/article/details/81017031
今日推荐