1、npm init
比如在一个空的文件夹下执行npm init命令
初始化了一个package文件。
需要关注的点:
main:指出了这个模块的抛出路径。在这里是index.js。(假如我们这个infra-test作为一个npm包发布到npm服务器,那我们这个包就是整个项目的出口)
2、npm install 发生了什么?
例如:npm install --save moment
新增了node_modules文件夹
在package.json中新增了dependencies字断。
例如:npm install
查询package.json文件,找到dependencies字断,如果你的node_modules中有对应的包,就不进行下载,如果没有这个包,会在npm服务器上继续下载这个包,放到node_modules文件夹中。
如果在查看这个dependencies字断的时候,如果我们把这个包的地址,指向我们自己的一个地址,npm会寻找我们自己给的这个地址,他会把对应的地址的整个包下载到我们的node_modules文件中。
3、发布一个包的完整过程。
添加你的npm账号
npm adduser
username:
password:
Email:
npm publish,就会把你的包发布到npm服务器上。
发布完成。
4、和正常的包一样,使用我们的node包。
npm Add install ‘infra-test’;
代码中使用:
代码执行结果:
5、我们的import Add from ‘infra-test’,发生了什么?
直接在node_modules中,找到infra-test的包,先查询package.json文件,找准它的main字断,加载对应的模块。
在这个加载的js模块的时候,这个js文件中,必须有module.exports关键字进行导出。
/**
- Created by mapbar_front on 2019-01-10.
*/
function add(a, b) {
return a + b;
}
module.exports = {
add
}
6、package中指向自己的git地址,该怎么办?
执行npm install
这个git地址的功能和上面的infra-test的npm服务器上发布的包一模一样的。
使用和测试:
在package.json中配置我们自己的git地址。
代码模块如下:
和我们发布到npm上的包是一样的结果。