从零开始写node包,并完成发布、下载、使用和删除(最完整版)

1.注册登录npm官网

前往npm官网https://www.npmjs.com/,注册一个自己的账号。注册后,通过邮箱验证自己的账号。

2.编译器中登录自己的账号

本人使用的编译器是VS Code,创建一个文件夹(比如node_pkg),使用VS Code打开后,打开终端,输入npm login,会有提示,接下来输入自己刚刚注册的账号、密码、邮箱以及接下来要上传的npm地址,如图所示
在这里插入图片描述

3.创建package.json

在node_pkg中创建一个文件夹(比如my_moduoles)用于包裹需要发布自己创建的package.json和index.js文件。
在这里插入图片描述
在终端输入 cd my_modules进入该文件夹后,输入npm init
在这里插入图片描述
根据提示,输入发布的包的名字、版本、描述、入口、发布地址、关键词、作者等后,回复yes,就生成了一个package.json文件
在这里插入图片描述

{
    
    
  "name": "sheldon_add",
  "version": "1.0.0",
  "description": "this is a totalizer for test",
  "main": "index.js",
  "scripts": {
    
    
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    
    
    "type": "git",
    "url": "https://registry.npmjs.org/"
  },
  "keywords": [
    "totalizer"
  ],
  "author": "Sheldon Zhou",
  "license": "ISC"
}

4.创建自己要发布的功能包

可以看到,入口文件的默认名称为index.js,因此在该目录下创建index.js文件(此文件就是功能包,也就是对外暴露的主文件)。
比如我们现在要发布一个简单的加法功能,
在这里插入图片描述

function add(a,b){
    
    
  return a + b;
}
module.exports = add;

写下一个function后,通过module.exports即可对外输出。

5.测试功能包是否可用

在最外层文件夹node_pkg创建app.js文件
在这里插入图片描述

const my_add = require('./my_modules');
console.log(my_add(12,13));

通过require引入功能包的功能后,即可使用。
终端退出到外层文件夹cd ..,输入node app.js即可运行app.js文件中的代码
在这里插入图片描述
可以功能包使用正常。

6.发布功能包

终端输入cd my_modules进入到需要发布的功能包所在文件夹,再npm publish将功能包上传到npm
在这里插入图片描述
上传成功后可以看到上传的功能包名称、版本、大小、文件数量等信息。
注意:上传的时候可能会报错如下:
在这里插入图片描述
这是因为你的邮箱并没有通过账户的验证,此时点击邮箱中之前注册后收到的验证邮箱,重新验证即可。

7.检查功能包是否上传成功

回到npm官网,点击自己的用户名称,进入到自己的npm包管理页面
在这里插入图片描述
在这里插入图片描述
发现之前上传的功能包已经出现在了该页面,就说明功能包上传成功(如果没出现,可能是因为还没上传完全,多刷新几次页面即可)。

8.下载自己上传的功能包

8.1 直接下载(不推荐)

创建一个项目文件夹(比如install_test),或者进入到一个已经创建的项目文件夹。在终端输入npm i sheldon_add,即可下载
在这里插入图片描述
即可看到自行创建的node_modules文件夹和package-lock.json文件,展开node_modules即可看到之前上传的功能包
在这里插入图片描述

const my_add = require('sheldon_add')
console.log(my_add(1,2))

创建app.js,通过require即可通过功能包名引入功能使用。在终端输入node app.js执行,即可看到功能包引用正常。

8.2 通过package.json下载(推荐)

创建一个项目文件夹(比如my_npm_install),文件夹下创建一个package.json文件,将功能包以依赖的方式引入
在这里插入图片描述

{
    
    
  "name": "sheldon_npm",
  "version": "0.1.0",
  "dependencies": {
    
    
    "sheldon_add": "1.0.0"
  },
  "license": "ISC"
}

在终端输入npm i即可下载package.json中的依赖。使用方式和8.1相同。
这种方式下载和直接下载的异同:
相同:都能够下载对应的功能包。
不同:使用package.json下载,可以记录功能包的信息,即使不小心删除node_modules中的功能包,也可以直接通过npm i命令重新下载,特别是多人开发的时候,尤其方便。

9.删除发布的功能包

如果功能包不再需要或者有错误,可以通过命令npm unpublish sheldon_add --force删除
在这里插入图片描述
可以在网页仓库上看到功能包真的被删除了。注意删除后的24小时内不可以发布相同版本和名称的包,否则会报错。

Guess you like

Origin blog.csdn.net/qq_39055970/article/details/114976634