您的位置:首页 > Web前端 > Node.js

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

2017-08-05 07:58 405 查看
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上。这个网站里面都是第三方包,类似于
python
PyPI


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

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

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


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

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nodejs 发布