1. 包

Nodejs 中除了它自己提供的核心模块外,我们可以自定义模块,也可以使用第三方的模块。Nodejs 中第三方模块由包组成,可以通过来对一组具有相互依赖关系的模块进行统一管理。

在 NodeJs 中通过 NPM 命令来下载第三方的模块(包)。

2. NPM 介绍

npm 是世界上最大的开放源代码的生态系统。我们可以通过 npm 下载各种各样的包,这些源代码(包)我们可以在 https://www.npmjs.com找到。

例如我们想导入一个格式化时间的包: silly-datetime

点击搜索之后我们可以看到下面的页面:

点击第一个我们想要下载的包进入下面的页面:

注意,上述安装命令要在我们项目目录下进行:

npm 是随同 NodeJS 一起安装的包管理工具,能解决 NodeJS 代码部署上的很多问题,
常见的使用场景有以下几种:
 允许用户从 NPM 服务器下载别人编写的第三方包到本地使用。(silly-datetime)
 允许用户从 NPM 服务器下载并安装别人编写的命令行程序(工具)到本地使用。
(supervisor)
 允许用户将自己编写的包或命令行程序上传到 NPM 服务器供别人使用。

三、NPM 命令详解。

1.npm  -v查看npm版本

2. 使用 npm 命令安装模块

npm install Module Name
如安装 jq 模块:
npm install jquery

3. npm uninstall moudleName 卸载模块

npm uninstall ModuleName

4. npm list 查看当前目录下已安装的 node 包

npm list

5.  查看模块的版本例如查看 jquery 的版本

//npm info 模块 
npm info jquery

6. 指定版本安装

npm install jquery@1.8.

三、package.json

随着项目地开发,我们可能会用到很多很多第三方包,这些包文件会很多,将来我们如果需要拷贝项目到其他机器,或者发送项目给其他人,我们一般不会把node_modules文件夹以及里面的包一起拷贝发送的,那怎么办呢?别人怎么获取包呢?这个时候我们可以使用package.json文件记录下我们项目引入的第三方包的各种信息,例如,包名,版本等等,我们拷贝项目的时候只需要连带把package.json一起拷贝过去即可,此时在其他机器上直接执行npm相关命令:npm install即可根据package.json里面的配置下载对应的第三方包。package.json 定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)

1、创建 package.json :

cd到项目文件路径下执行下面的命令之一:


npm init –-yes//强制创建(packet.json里面的name属性值默认使用项目名)
npm init//自定义创建

注意 npm init --yes命令一定要确保项目名规范,没有空格中文,否则会提示项目名不合法:

合法的情况下如下:

项目中会生成一个名字为package的json文件:

npm init自定义创建:

最后项目里面也会创建出package.json文件,并且默认会把node_modules文件夹下面的所有的包的依赖写入pack.json文件

项目中有了packet.json文件之后我们今后安装第三方包的时候一定在安装命令后面加--save,这样安装第三方包就会自动添加该包的依赖进入package.json文件了:

npm install 模块 --save

有了packet.json文件之后,在其他机器上只需要执行npm install命令即可自动下载所有的第三方jar包

npm install 模块 --save和npm install 模块 --save-dev:

两种命令写入的依赖不一样:

使用 npm install node_module –save 自动更新 dependencies 字段值;
使用 npm install node_module –save-dev 自动更新 devDependencies 字段值;
dependencie 配置当前程序所依赖的其他包。
devDependencie 配置当前程序所依赖的其他包,只会下载模块,而不下载这些模块的
测试和文档框架

dependencies补充:

"dependencies": {
"ejs": "^2.3.4",
"express": "^4.13.3",
"formidable": "^1.0.17"
}

^表示第一位版本号不变,后面两位取最新的
~表示前两位不变,最后一个取最新
*表示全部取最新

上面的设置决定将来使用npm install命令的时候如何更新我们原有的第三方包

四、安装淘宝镜像

有些时候我们网络不好很难从npm官网下载第三方包,于是就产生了淘宝镜像(国内的npm包下载地址)

http://www.npmjs.org npm 包官网
https://npm.taobao.org/ 淘宝 npm 镜像官网
淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频
率目前为 10 分钟 一次以保证尽量与官方服务同步。

使用淘宝镜像需要先使用npm安装cnpm(淘宝镜像),安装步骤如下:

直接去淘宝镜像官网复制下面的代码在cmd窗口执行即可:

安装淘宝镜像之后我们今后就可以使用cnpm install代替npm install命令了:

十二、Nodejs 包与 NPM 第三方模块安装 package.json 以及 CNPM的更多相关文章

  1. Nodejs 包与 npm第三方模块安装和 package.json 以及 cnpm

    包与 NPM 1. 包 Nodejs 中除了它自己提供的核心模块外,可以自定义模块,也可以使用第三方的模块.Nodejs 中第三方模块由包组成,可以通过包来对一组具有相互依 赖关系的模块进行统一管理. ...

  2. npm安装package.json中的模块依赖

    npm 一键安装 package.json里的依赖时有2种情况: 1.package.json不存在时 运行命令: npm init可自动创建package.json文件 2.package.json ...

  3. Nodejs——包与NPM

    在模块之外,包和NPM则是将模块联系起来的一种机制. CommonJS的包规范由包结构和包描述文件组成. 包实际上是一个存档文件,即一个目录直接打包为.zip或tar.gz格式的文件. 完全符合Com ...

  4. 循序渐进nginx(三):日志管理、http限流、https配置,http_rewrite模块,第三方模块安装,结语

    目录 日志管理 access_log error_log 日志文件切割 自定义错误页 http访问限流 限制请求数 语法 使用 限制连接数 语法 测试 补充: https配置 使用 生成证书 配置ng ...

  5. Python入门之第三方模块安装

    Python入门之第三方模块安装 平台:Win10 x64 + Anaconda3-5.3.0 (+Python3.7.0) Issue说明:pip install line_profiler-2.1 ...

  6. python基础-7模块,第三方模块安装方法,使用方法。sys.path os sys time datetime hashlib pickle json requests xml

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  7. 详解npm的模块安装机制

    详解npm的模块安装机制 依赖树表面的逻辑结构与依赖树真实的物理结构 依赖树表面的逻辑结构与依赖树真实的物理结构并不一定相同! 这里要先提到两个命令:tree -d(linux)和npm ls(npm ...

  8. nginx第三方模块安装方法

    nginx第三方模块安装方法 ./configure --prefix=/你的安装目录 --add-module=/第三方模块目录 比如echo模块. 没安装前,使用测试. location /tes ...

  9. Python的第三方模块安装

    python的第三方模块安装一般使用python自带的工具pip来安装. 1.在Windows下,在安装python时勾选[安装pip]和[添加python至环境变量]. 如果在python安装目录的 ...

随机推荐

  1. Jenkins设置自动发邮件

    安装Jenkins方法详解:https://www.cnblogs.com/lizhe860/p/9901257.html 一.设置全局变量 从首页依次进入系统工具→系统设置 二.在项目配置中设置项目 ...

  2. 生成器+列表生成式,生成器可以节省内存,随时调取函数运行,以及实现多线程运行函数,__next__()和.send(参数)的区别,a,b=b,a+b其实是元祖的用法,出现异常状态用try...except StopIteration来处理

    列表生成式:是代码更简洁. 也可以是函数,比如func(i) 生成器:generator 列表生成式,是中括号,改成小括号,就是生成器: 如果你用列表生成式,生成一亿个数据:这里会卡好久,会生成一亿个 ...

  3. PL/SQL 训练04--事务

    --pl/sql通过SQL和ORACLE数据库紧密的整合在一起--在pl/sql中可以执行任何操作语句(DML语句),包括INSERT,UPDATE,DELETE,MERGE,也包括查询语句--可否执 ...

  4. Oracle日常性能问题查看

    1 判断回滚段竞争的sql --当Ratio大于2时存在回滚段竞争,需要增加更多的回滚段) ratio from v$rollstat rs, v$rollname rn where rs.USN = ...

  5. 第一章 为什么使用NoSQL

    1.1 关系型数据库的价值 1.1.1 获取持久化数据 1.1.2 并发 通过”事务“ 来控制,出错有“回滚”机制. 1.1.3 集成                共享数据库集成,多个应用程序将数据 ...

  6. Handler消息传送机制

    一.什么是UI线程 当程序第一次启动的时候,Android会同时启动一条主线程( Main Thread). 主要负责处理与UI相关的事件. 二.UI线程存在的问题 出于性能优化考虑,Android的 ...

  7. PHP AST学习

    前一阵和前同事交流在检测webshell方面的相关方法,其中提出了使用lex yacc做一套语法解析来解析字节码段来判断是否存在webshell. 后来在查找相关资料中,找到了github开源的一个工 ...

  8. java成神之——注释修饰符

    注释修饰符 自定义注释 元注释 通过反射在runtime访问注释 内置注释 多注释实例 错误写法 使用容器改写 使用@Repeatable元注释 注释继承 使用反射获取注释 获取类的注释 获取方法的注 ...

  9. 第十五章 MySQL日志(待续)

    ·······

  10. Python生成器/推导式/生成器表达式

    一   生成器 生成器的本质就是迭代器 生成器的特点和迭代器一样,取值方式和迭代器一样(__next__(),  send():  给上一个yield传值) 生成器一般由生成器函数或者生成器表达式来创 ...