【Node.js-2】自定义模块以及引用、自定义模块存放路径、发布升级自定义的模块

本文介绍了Node.js中如何正确地引入自定义模块,并讲解了通过exports和module.exports暴露模块的方法。同时,文中还详细说明了npm如何管理和发布这些自定义模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、如果要引入自定义的模块,虽然可能在当前目录下,但是也需要注意路径,因为如果不加路径标识的话,很难分辨出来是引用的系统模块还是引用的当前目录里的模块,如下面这种,是分不清的:

var http = require('http');
var test = require('test.js');

——正确的写法是如下。当然如果不是在当前文件夹里,那么再更改相应的路径即可(注:引用的时候可以省略后缀)。

const t1 = require('./1.js');

2、我们定义一个模块,其实最核心的是利用exports暴露出去,比如在1.js里面:

exports.a = 11;
exports.b = 22;

然后在需要引用该模块的地方,这么使用即可:

const t1 = require('./1.js');
console.log(t1.a,t1.b);

——但是,这种模块里内容的输出要写很多个exports,有另一个方法是:

module.exports = {
    a:111,
    b:222
}

3、我们都知道Node.js有一个包管理工具叫npm,我们安装卸载一些包直接使用node install xx或者node uninstall xx。使用这个包下载安装的话,它下载到哪里呢?

——如果我们cd到一个目录后,然后使用node install xx安装的话,那么它就会下载到当前文件夹里,但是他会新建一个叫做node_modules的文件夹,然后把下载的所有的都放在这个里面。我们使用的时候和引入系统模块一样样用。

——那么,有意思的就来了。我们利用npm下载的都是第三方包,那么我们自己自定义的模块本质上也属于第三方包,那么我们把我们的那个文件比如1.js可不可以也放到node_modules里面?

——答案是可以的。而且也应该这么做。这么做之后,还有一个很明显的好处,就是,我们引入的时候,就不需要考虑路径的问题了,直接使用:

const t1 = require('1.js');

4、发布模块。发布模块其实就是把代码上传到https://www.npmjs.com上。这个网站里面都是第三方包,类似于pythonPyPI

——当然,我们需要一个账号,这个账号我们可以在官网直接注册,也可以通过命令npm adduser来注册用户。

——注册完用户,当然就是利用这个用户上传了。那么你需要上传哪个代码,就进入到它所在的文件夹里,初始化一下,也就是nppm init,其实初始化就是让你给这个包填写一些基本信息,比如名字、版本、作者等等,还有入口文件(默认是index.js)等等。初始化之后,我们会在这个文件夹里面看到一个package.json的文件,这里面就是一个字典,字典里面就是我们刚刚初始化填的哪些信息。

——我们要发布之前肯定要登录。在命令行里面就是npm login

——然后,我们需要在这个文件夹里面创建一个index.js,写我们的模块。写完之后,就可以发布了。发布的命令就是npm publish,发布之后可以撤销发布,就是 npm --force unpublish,当然撤销发布的时候比较麻烦,你得下载这个模块,下载之后在这个模块所在的文件夹路径里,使用撤销发布这个命令。至于撤销发布里面的细节我们这边不展开讲,比如发布超过一定时间就不能撤销等等。

——发布之后,我们如果有升级版本怎么办?下载这 包,修改代码,然后把package.json里的版本值改一下,最后利用npm update就可以发布升级包了。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值