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. chrome浏览器,调试详解,调试js、调试php、调试ajax

    1.可以看到js报错 2.可以看到php报错 3.可以看到ajax返回的信息,以及报错情况 4.可以看到调用了那些内容以及顺序 5.可以调试js代码 6.可以查看session等等 功能非常之强大. ...

  2. php中,如何将编译后的代码,反编译回去。

    编译后 <?php /*********************/ /* */ /* Version : 5.1.0 */ /* Author : RM */ /* Comment : 0712 ...

  3. 012. MVC5中Razor引擎使用模板页

    1.文件→新建项目→框架选择.NET Framework 4.5 2.确定后选择ASP.NET 4.5 模板→MVC→为以下项添加文件夹和核心引用→MVC, 在vs 2015中默认就使用的Razor引 ...

  4. Cocos暂停和重新开始游戏

    创建按钮 cc.MenuItemFont.setFontSize(18); cc.MenuItemFont.setFontName("Arial"); var systemMenu ...

  5. nodejs中的util.inspect.js

    util.inspect(object,[showHidden],[depth],[colors])是一个将任意对象转换 为字符串的方法,通常用于调试和错误输出.它至少接受一个参数 object,即要 ...

  6. Python re模块与正则表达式的运用

    re模块 永远不要起一个py文件的名字,这个名字和你已知的模块同名 查找 findall():     匹配所有   每一项都是列表中的一个元素 语法 :   findall(正则判断条件,要判断字符 ...

  7. Java多线程-新特征-信号量Semaphore

    简介信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确.合理的使用公共资源. 概念Semaphore分为单值和多值两种,前者只能 ...

  8. Professional C# 6 and .NET Core 1.0 - Chapter 38 Entity Framework Core

    本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - Chapter 38 Entity F ...

  9. 八数码问题——A*大法好

    [描述] 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示. 空格周围的棋子可以移到空格中. 要求解的问题是:给出一种初始布局(初始状态)和目标布局( ...

  10. cocos2d-x 初探helloWorld

    cocos2d-x的main函数代码很少,把一些复杂的接口封装到AppDelegate类里了,“AppDelegate”从词意可以得出是app的代理类,而一些最早的场景都会在AppDelegate类里 ...