npm理解
NPM就是一个下载器,通过它可以下载到几乎所有你需要的代码资源。它的成功,包括如下几个方面:
- 海量资源:NPM背后有数以万计的开源免费模块。
- 高效利用:作为开发者,只需要敲几个简单的命令就可以将这些开源模块引入到自己的项目中来。虽然这些模块大部分都可以在github上找到,但当模块数量巨大的时候,一个个去github上下载还是非常困难的。再考虑到版本依赖问题,就更加复杂。但有了NPM,一个命令搞定。
- 鼓励共享:通过NPM提供的
npm adduser
,npm publish
两个简单的命令,就能把自己写的模块贡献到NPM社区。超低的发布成本无疑为NPM的发扬光大带来了无疑估量的贡献。
NPM管理的是Node模块。理解一个Node模块(my_module),最核心的是要理解下面三大部分:
- 模块本身的代码逻辑
- 模块本身的代码逻辑,自然是通过代码来体现的;
- 模块依赖的第三方组件
- 模块依赖的第三方组件,通过模块的package.json配置文件中dependences字段指定,模块的使用者在安装模块时会根据package.json文件自动下载这些组件(他们其实也是一个个的模块)
- 模块依赖的文档测试工具
- 模块依赖的文档测试工具也是通过package.json配置文件来指定,对应的字段是devDependencies,对于这一部分,模块的使用者有两种选择:不准备了解模块细节,没必要安装这些工具,此时使用者可以通过
npm install my_module --save
命令来安装模块;准备对模块进行一些定制,定制后还需要利用模块的测试工具进行系统的测试,此时使用者可以通过npm install my_module --save-dev
命令来安装模块,npm会自动将devDependencies指定的工具一起下载下来。
- 模块依赖的文档测试工具也是通过package.json配置文件来指定,对应的字段是devDependencies,对于这一部分,模块的使用者有两种选择:不准备了解模块细节,没必要安装这些工具,此时使用者可以通过
由此可见,模块 = 代码 + 依赖 = 代码 + package.json
。我们只需要通过npm把代码和package.json文件下载下来,就能获得使用这个模块所需的一切。
npm理解的更多相关文章
- 01 node.js,npm,es6入门
Node.js安装 1.下载对应你系统的Node.js版本: https://nodejs.org/en/download/ 命令提示符下输入命令 node -v 会显示当前node的版本 快速入门 ...
- NPM一Node包管理和分发工具
NPM 全称 Node Package Manager Node包管理和分发工具,可以把NPM理解为前端的Maven 我们通过npm可以很方便地下载js库,管理前端工程 最近版本的node.js已经集 ...
- NPM 包管理工具详解,使用教程
NPM 包管理工具 1.1 定义:什么是 NPM NPM 全称 Node Package Manager,它是 JavaScript 的包管理工具, 并且是 Node.js 平台的默认包管理工具.通过 ...
- npm的下载与安装
1.Node (1)什么是Node.js Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. (2)Node ...
- Appium安卓真机环境搭建
说明 步骤可能比较简洁,因为手头上有安卓测试机,所以需要配置虚拟机的童鞋请去虫师博客园,因为我也是从那儿学的,哈哈.点我飞到虫师那儿 但是如果你要搭建真机测试环境的话,本教程将是最简单实用的. 1. ...
- Angular2入门学习
最近项目使用angular2,1和2版本变化大变样.下面总结一些学习网址及安装步骤. 中文官网(必看): https://angular.cn 懒人学习: http://www.imooc.com/l ...
- npm的理解
一 概念方面 npm的全称是node package manger ,是一个nodejs包管理工具,已经成为非官方的发布node模块包的标准.有了npm可以很快速的找到特定服务器要使用的包,进行下载, ...
- 从npm 角度理解 mvn 的 pom.xml
从npm 角度理解 mvn 的 pom.xml pom -- project object model. 用于描述项目的配置: 基础说明 依赖 如何构建运行 类似 node.js 的 package. ...
- 从Java角度理解Angular之入门篇:npm, yarn, Angular CLI
本系列从Java程序员的角度,带大家理解前端Angular框架. 本文重点介绍Angular的开发.编译工具:npm, yarn, Angular CLI,它们就像Java在中的Maven,同时顺便介 ...
随机推荐
- MySQL自增锁等待问题解决
有网友再群里问:在做基准测试时候,批量插入数据时,有很多自增锁等待,我告诉他解决办法: 1.innodb_autoinc_lock_mode=2 2.innodb_autoextend_increme ...
- Servlet学习笔记05——什么是jsp?
1. jsp (java server page) (1)jsp是什么? sun公司制订的一种服务器端动态页面技术规范. 注: 因为虽然使用servlet也可以生成动态页面, 但是过于繁琐(需要使用o ...
- TCP_Wrappers & PAM & Nsswitch服务
cpwrapper:工作在第四层(传输层),能够对有状态连接的服务进行安全检测并实现访问控制的工具.部分功能上跟iptables重叠. 对于进出本主机访问某特定服务的连接基于规则进行检查的一个访问控制 ...
- JAVAOOP多态
概念:不同对象对于同一个操作做出的相应不同 实现方法:父类:抽象类 抽象方法 子类:普通类 重写抽象方法 同名 父类:普通类 普通方法 子类:普通类 普通方法 同名 父类:接口 抽象方法 实现类:普通 ...
- Delphi7卸载indy9,安装indy10步骤
1. 找到C:\Program Files\Borland\Delphi7\Borland Delphi7.msi——双击——点Next——选择Modify,点Next——找到Program File ...
- java线程安全总结 - 1 (转载)
原文地址:http://www.jameswxx.com/java/java%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%80%BB%E7%BB%93/ 最近想将ja ...
- tomcat7 配置 https安全访问
在apache-tomcat-7.0.33-windows-x64.zip配置https,结果在配置SSL时遇到一些问题 1.用JDK自带的keytool来生成私有密钥和自签发的证书,如下: keyt ...
- EVALUation mode running with code size limit:2k keil进行仿真过程中出现的报错
EVALUation mode running with code size limit:2k 如果keil软件未破解,会限制程序的存储大小.第一是你的软件没有破解,不能编译2K以上的程序:这种情况下 ...
- 将list中的元素按照属性分类成树状的map
技术交流群: 233513714 public LinkedHashMap<String, List<TPhoneModel>> queryPhoneList(List< ...
- X-Frame-Options是什么?
错误: Refused to display 'http://xx.com/spot/kline.do' in a frame because it set 'X-Frame-Options' to ...