Node【包】

简介: Node【包】

🌟前言

哈喽小伙伴们,新的专栏 Node 已开启;这个专栏里边会收录一些Node的基础知识和项目实战,今天带领大家初识一下 Node.js包让我们一起来看看吧🤘


🌟Nodejs包

由多个子模块组成的大模块叫做包。


🌟什么是包?

我们已经知道了 JS 模块的基本单位是单个 JS 文件,但复杂些的模块往往由多个子模块组成。为了便于管理和使用,我们可以把由多个子模块组成的大模块称做包(package),并把所有子模块放在同一个目录里。


22.png🌟自定义包

在组成一个包的所有子模块中,需要有一个入口模块,入口模块的导出对象被作为包的导出对象。例如有以下目录结构。

目录:d:/node/calc/
/calc
    sum.js            //加法
    subtraction.js    //减法
    multiplication.js //乘法
    division.js       //除法
    main.js           //主模块 入口模块

calc目录定义了一个包,其中包含了4个子模块,main.js作为入口模块。

var sum = require('./sum.js');
var subtraction = reuqire('./subtraction.js');
var multiplication = require('./multiplication.js');
var division = require('./division.js');
function calc(a,tag,b){
    switch(tag){
        case '+':
        return sum(a,b);
        break;
        case '-':
        return subtraction(a,b);
        break;
        case '*':
        return multiplication(a,b);
        break;
        case '/':
        return division(a,b);
    }
}
module.exports = calc;

然后我们要使用这个包

//d:/node/use.js
var calc = require('./calc/main.js');
console.log(clac(10,'+',100));

但是这样使用感觉不像一个包。

var calc = require('./calc');

🌟包配置文件

包配置文件是一个JSON格式的文件 package.json , 位于包的根目录下, 是包的重要组成部分。


🌟示例

如果想自定义入口模块的文件名和存放位置,就需要在包目录下包含一个 package.json 文件,package.json是包的配置文件。


D:/node/calc/
calc/
 ├── sum.js            //加法
 ├── subtraction.js    //减法
 ├── multiplication.js //乘法
 ├── division.js       //除法
 ├── main.js           //主模块 入口模块
 └── package.json
package.json
{
    "name": "calc",
    "main": "./calc/main.js"
}

🌟Package.json 属性说明

1685511330016.png

🌟语义化版本号

使用NPM下载和发布代码时都会接触到版本号。NPM使用语义版本号来管理代码,这里简单介绍一下,查看更多。

语义版本号分为X.Y.Z三位,分别代表号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。

版本号 语义 描述
X 主版本 如果有大变动,新增了功能,向下不兼容,需要更新X位。
Y 次版本号 如果是新增了功能,但是向下兼容,需要更新Y位。
Z 补丁版本号 如果只是修复bug,需要更新Z位。


🌟package.json示例

它是这样一个json文件(注意:json文件内是不能写注释的,复制下列内容请删除注释):

{
  "name": "test",                                      //项目名称(必须)
  "version": "1.0.0",                                  //项目版本(必须)
  "description": "This is for study gulp project!",   //项目描述(必须)
  "homepage": "",                                      //项目主页
  "repository": {                                      //项目资源库
    "type": "git",
    "url": "https://github.com/xxxx"
  },
  "author": {                                          //项目作者信息
    "name": "allcky",
    "email": "allcky@qq.com"
  },
  "license": "ISC",                                    //项目许可协议
  "devDependencies": {                                 //项目开发依赖包
    "gulp": "^3.8.11",
    "gulp-less": "^3.0.0"
  },
  dependencies:{                                       //项目生产依赖包
  }
}

🌟符合CommonJS规范的包

包是在模块基础上更深一步的抽象,Nodejs 的包类似于 C/C++ 的函数库或者 Java/.Net 的类库。它将某个独立的功能封装起来,用于发布、更新、依赖管理和版本控制。Nodejs 根 据 CommonJS 规范实现了包机制,开发了 npm来解决包的发布和获取需求。


CommonJS的包规范的定义其实也十分简单,它由包结构和包描述文件两个部分组成,前者用于组织包中的各种文件,后者则用于描述包的相关信息,以供外部读取分析。


Node.js 的包是一个目录,其中包含一个 JSON 格式的包说明文件 package.json。严格符合 CommonJS 规范的包应该具备以下特征:


文件类型 描述
package.json 必须在包的顶层目录下
二进制文件 应该在 bin 目录下
JavaScript 应该在 lib 目录下
文档 应该在 doc 目录下
单元测试 应该在 test 目录下


Node.js 对包的要求并没有这么严格,只要顶层目录下有 package.json,并符合一些规范即可。当然为了提高兼容性,我们还是建议你在制作包的时候,严格遵守 CommonJS 规范。

/
 ├── bin/            # 存放命令行相关代码
 ├── src/            # 开发目录
 ├── doc/            # 存放文档
 ├── lib/            # 存放API相关代码
 ├── node_modules/   # 存放三方包
 ├── tests/          # 存放测试用例
 ├── package.json    # 元数据文件
 └── README.md        # 说明文件

🌟写在最后

更多Node知识以及API请大家持续关注,尽请期待。各位小伙伴让我们 let’s be prepared at all times!

目录
相关文章
|
3月前
|
JavaScript Linux 数据安全/隐私保护
node内网安装npm私服以及依赖包上传发布verdaccio
node内网安装npm私服以及依赖包上传发布verdaccio
318 1
|
3月前
|
JavaScript
Nodejs 第七章(发布npm包)
Nodejs 第七章(发布npm包)
50 0
|
8月前
|
JavaScript 小程序 前端开发
nodejs管理包工具nvm的安装与基本使用
有好的建议,请在下方输入你的评论。 欢迎访问个人博客 guanchao.site 欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”
92 1
|
JavaScript 程序员 API
Node.js----npm与包
Node.js----npm与包
|
11月前
|
存储 缓存 资源调度
[Node] Node.js 包管理工具详解npm yarn cnpm npx pnpm
[Node] Node.js 包管理工具详解npm yarn cnpm npx pnpm
|
11月前
|
缓存 JSON JavaScript
Node——fs,path,http,npm与包
Node——fs,path,http,npm与包
|
JavaScript
Node.js学习笔记----发布包
Node.js学习笔记----发布包
|
JavaScript
Node.js学习笔记----npm与包
Node.js学习笔记----npm与包
下载node-gyp依赖包报错:gyp ERR! find VS msvs_version not set from command line or npm config
就是有一点需要注意,我这里安装vs的时候,可用里面没有vs社区版2017,只有2022,只能安装了2022
|
存储 前端开发 JavaScript
前端工程化的Node.js之代码的组织/部署的包 package
在现代的Web开发中,前端工程化已经成为了不可或缺的一部分。而Node.js作为JavaScript的运行环境,为前端工程化提供了很多强大的工具和支持。其中,代码的组织和部署是前端工程化中非常重要的一部分,而Node.js的包管理系统npm就是解决这个问题的利器。今天我们就来探讨一下如何使用npm来进行代码的组织和部署。
83 0