Node.js相关——package概念及NPM
2024-08-26 06:11:41
1. package 包
CommonJS的包规范允许我们将一组相关的模块组合到一起,形成一组完整的工具。CommonJS的包规范由 包结构 和 包描述文件 两个部分组成。
1.1 包结构
包实际上就是一个压缩文件,解压以后还原为目录。符合规范的目录,应该包含如下文件。
- package.json 描述文件,必需
- bin 文件夹,内存放可执行二进制文件,一般在工具包中存在,非必需
- lib 文件夹,内存放js代码,非必需
- doc 文件夹,内存放文档,非必需
- test 文件夹,供单元测试,非必需
1.2 包描述文件
包描述文件用于表达非代码相关的信息,它是一个JSON格式的文件 – package.json,位于包的根目录下,是包的重要组成部分。
package.json 的属性主要有:
- name - 包名。
- version - 包的版本号。
- description - 包的描述。
- homepage - 包的官网 url 。
- author - 包的作者姓名。
- contributors - 包的其他贡献者姓名。
- dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
- repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
- main - main 字段指定了程序的主入口文件,require('moduleName') 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
- keywords - 关键字
2. NPM(Node Package Manager)
CommonJS包规范是理论,NPM是其中一种实践。对于Node而言,NPM帮助其完成了第三方模块的发布、安装和依赖等。借助NPM,Node与第三方模块之间形成了很好的一个生态系统。
node.js安装时会自动下载npm包,该包结构如下:
2.1 NPM常用指令
npm -v #查看npm的版本
npm version #查看所有模块的版本
npm init #初始化项目(创建package.json)
npm i/install 包名 #安装指定的包
npm i/install 包名 --save #安装指定的包并添加依赖
npm i/install 包名 -g #全局安装(一般都是一些工具)
npm i/install #安装当前项目所依赖的包
npm s/search 包名 #搜索包
npm r/remove 包名 #删除一个包
2.2 NPM镜像选择
由于npm的镜像源是在国外,因此安装过程中下载可能比较慢或者下载失败,可以写选择连接 淘宝NPM镜像。方法如下:
2.2.1 临时使用
npm --registry https://registry.npm.taobao.org install express
2.2.2 持久使用
npm config set registry https://registry.npm.taobao.org
npm install express
2.2.3 保留npm,通过cnpm使用
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install express
最新文章
- mac php环境启动
- C指针(二)
- 记一次项目中的css样式复用
- android加载大量图片内存溢出的三种方法
- ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作
- FineUI第三天----WebConfig的配置
- MySQL Replication浅析
- Struts2运行流程分析
- maven3.1安装及配置
- Linux运行C#程序
- C plus plus primer plus
- android xml解析 sax
- server宕机监控、检測、报警程序(139绑定手机短信报警)monitor_down.sh
- 哪些类继承了Collection接口
- HTML学习笔记Day10
- Java实现带logo的二维码
- 【BZOJ3817/UOJ42】Sum(类欧)
- spring boot(十):定时任务
- OSLab多进程
- python 微信企业号
热门文章
- JavaScript学习笔记——错误处理
- Android -- AudioPlayer
- 最新自然语言处理(NLP)四步流程:Embed->;Encode->;Attend->;Predict
- centos6默认python2.6升级2.7 卸载python2.6升级2.7
- 内建DNS服务器--BIND
- ArcMap中条件语句的bug
- LintCode: Fizz Buzz
- Mina.Net实现的UDP协议消息收发Demo
- 008-Go 关于字符串拼接
- Linux内核配置:定制配置选项