npm:发布/迭代个人开发包到世界仓库

 目录

package包:发布/更新流程

 注意点:

1.报错:初次执行npm publish命令报错

 2.报错:执行npm addser登录初次登录时报错

 3.报错:完成账户登录,npm publish发布时再次报错


        npm是JavaScript运行时环境的默认包包管理器,全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。

        在实际开发中,我们使用到的依赖库大多是第三方提供的,如果我们想要以作者的身份开发属于自己的开发包,并将其发布到世界仓库。

package包:发布/更新流程

        ①我们需要在npm官网注册属于自己的账户,只需要提供用户名、密码、邮箱号即可,

         ②本地准备好一个package 包,流程为:

# 创建一个用于放置package 包的文件夹

mkdir dirname

# 切换到目标文件夹

cd dirname

# 初始化

npm init

         然后创建入口文件,默认为index.js,并编写实际的代码片段,使用modules.export命令将其导出即可,

{
  "name": "npm-package-xtest",
  "version": "1.0.0",
  "description": "a test npm package",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "xwd",
  "license": "ISC"
}
modules.export = {
  dateTimeFormatter:function(dateStr){
     const date = new Date(dateStr);
     return `${date.getFullYear()}-${date.getMonth()+1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
  }
}

        ③使用npm public命令,发布创建好的个人package包。

          如果显示如下内容,即为发布成功。 

        ④测试发布好的个人package包。

# 创建一个测试文件夹

mkdir test_folder

# 切换到测试文件夹

mkdir test_folder

# 初始化

npm init

# 安装个人发布的package包

npm install npm-package-xtest

        如下所示,即为安装成功,

package.json文件

         ⑤使用package包。

const  xtest = require("npm-package-xtest");
console.log(xtest);

        看到如下信息,提示报错,是我们自定义的包有问题。

         ⑥修复package包与包的升级

        上述报错,提示的个人的package包存在语法错误,那么我们如何修复呢?

        首先找到自己的包,修复语法错误,为如下这一版内容,

module.exports = {
  dateTimeFormatter:function(dateStr){
     const date = new Date(dateStr);
     return `${date.getFullYear()}-${date.getMonth()+1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
  }
}

        然后使用命令行,执行命令:npm version patch,使其版本号自增(注意:不要手动修改package.json文件中的version版本号),可以看到,版本号已经变为v1.0.1了。

         接下来,继续使用命令:npm publish,更新仓库中的包,

                 如下为在npm官网搜索结果中,显示的package包的详细内容,

         ⑦项目依赖:package的升级

                接下来,我们在测试项目中升级npm-package-xtest依赖的版本, 如下图,当前为v1.0.0有缺陷的版本,

                 执行命令,查看当前依赖npm-package-xtest的所有版本信息,

                 继续使用命令:npm update npm-package-xtest,将其更新到最新的1.0.1版本,

         ⑧重新测试,执行node main.js,运行脚本文件,正常执行,

const  xtest = require("npm-package-xtest");
console.log(xtest);//打印模块

//测试代码
const date = new Date();
const dateFormatterStr = xtest.dateTimeFormatter(date.toISOString());
console.log(dateFormatterStr);

 注意点:

1.报错:初次执行npm publish命令报错

        报错原因:未登录个人npm账户,执行命令:npm addser,按照提示信息完成登录即可。

 2.报错:执行npm addser登录初次登录时报错

        报错原因:可设置了npm的淘宝镜像,需要执行命令如下命令,切换到原始仓库。再次登录即可。

npm config set registry https://registry.npmjs.org/


 3.报错:完成账户登录,npm publish发布时再次报错

         报错原因:package的包名x-test重复,可以在npm官网搜索,显示相同的包名已经被使用过了,换一个未被使用过的package包名即可。

4.执行npm update但是package.json未更新

        部分小伙伴可能会发现,上面,我们在测试项目中使用npm update npm-package-xtest命令更新依赖包时,package-lock.json文件中npm-package-xtest的版本号已经更新(实际上:此时再使用require命令导入npm-package-xtest依赖时,调用的就是最新版本的代码),package.json文件中dependencies中包含的npm-package-xtest子项版本仍然是v1.0.0,没有得到更新,那么,如何解决这个问题呢?

        可以执行命令如下,用于更新dependencies中所声明的依赖项版本号。

npm update -S npm-package-xtest

        PS:想要更新package.json文件中声明的的版本号,可以继续了解如下内容,

        "dependencies"表示开发和上线都需要的第三方包,用-S

        "devdependencies"表示仅在开发阶段需要的第三方包,用-D

        因此,在安装或者更新时,可根据实际需要添加-S -D前缀,来将信息写入/更新到指定的dependencies或者devdependencies节点下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是席木木啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值