npm发包流程

本文详细介绍如何使用npm发布Node包,包括创建项目、初始化、编写代码、注册账户、配置npm源、登录、发布、更新及删除包等全流程。解决包名冲突及权限问题,确保包的公开访问。

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

说起node,大家都很熟悉了,随着node一起下载安装的还有我们的包管理工具npm(node package manager).我们平时也是一直在使用npm的,但大部分时候,我们使用的都是别人的包.假如有一天我们自己写了一个包,想要上传到npm上面去,流程是怎么样的?

创建一个文件夹并且进入这个文件夹
mkdir publish-test && cd $_
初始化一个package

我用的是yarn,初始化命令如下:

yarn init

大家如果用的是npm的话就是:

npm init

一步步的将配置信息填入,也可以直接使用下面的命令快速生成

yarn init -y

当前项目结构
注意:这里的包名是不能和npm上的包有重复的,有时候包名相似的话npm也是会提醒你的,可以去npm官方搜索你的包名,看是否已经被使用了

编写包内容

新建一个index.js文件,随便写一句代码,比如:

console.log(111)
准备发布

npm官方地址 点击官方地址去注册,并且通过邮箱的验证,若是不通过验证的话,后面的发布流程会提示你去验证,
注册好npm账号以后,我们的发布流程就正式开始了.第一次发布的话,我们要使用如下命令:

npm adduser

以后的话,可以使用

npm login

在输入完 npm adduser 之后,就要求输入用户名/密码/邮箱,结果输入完以后出现了一个报错

409 Conflict - PUT http://registry.npm.taobao.org/-/user/org.couchdb.user:ezlou - [conflict] User ezlou already exists

这是因为我们目前的npm源是淘宝镜像,淘宝镜像是不允许我们上传自己包的,所以我们要切回原先的npm的镜像,如何查看当前的源:

npm config get registry

当前源是淘宝镜像
可以看到我们当前源是淘宝镜像,我们需要将其切换到原先的源

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

切换完以后,重新登录,出现了如下的提示,说明登录成功
登录成功

发布
npm publish

出现如下图所示:
发布成功
可以看到 包名+版本 显示在终端上了,说明我们的包已经发布成功了,然后我们去npm个人中文看自己发布的包 https://www.npmjs.com/settings/xxx/packages 这里将xxx替换成自己的用户名

可能会踩到的坑

如下图:
没有权限
说明你没有发布这个包的权限,很有可能就是因为你的包名和别人的包名重复了.我们修改下包名,在其后面加上一个2,然后继续发布
包名过于相似的报错
这时候可能会提示包名过于类似,并且它建议我们可以使用 @我们的用户名/包名 这样的格式去发布自己的包.并且发布的时候命令变成了

npm publish --access=public

这句话的意思是将我们发布的包变成一个公开包,让大家都能访问到.因为现在我们的包名是 @我们的用户名/包名 这种格式,这种以用户名自己名字开头的包默认是当作私有包的,而私有包是需要收费的,所以如果这时候我们不加上后面的修饰的话,就会出现如下的报错:
这是一个付费功能啊
我们加上 --access=public,将其变成一个公开包,重新发布一下,可以看到发布成功了!
自此,我们自己的包就发布成功了,过一会儿别人就可以通过命令下载安装我们的包了

更新包

如果我们的代码有了更新,我们可以重新将包发布到npm上去,但是注意,包的版本号必须和之前是不一样的,npm不允许上传相同版本的包.这里更新包版本也有两种方式

  1. 直接在package.json 中手动修改包的版本
  2. 通过npm指令来修改
npm version patch  //补丁版本,最后一位数加1 
npm version minor  //增加了新功能 中间的数字加1
npm version major //大改动,不向下兼容 第一位数字加1

我们根据这次包的修改内容,来决定我们这次更新的版本号

删除包

假如我们要删除自己发布的包的话,使用下面的命令

npm unpublish --force

注意:只有在发布的24小时内可以删除包
基本上,一个包的发布流程就是以上这些啦!

### 如何在 VSCode 中对项目进行打包发布 #### 安装必要的工具和依赖 对于同类型的项目,在VSCode中进行打包发布的流程会有所同。以JavaScript/TypeScript为基础的前端项目(如Vue.js),以及Java后端项目(如Spring Boot)为例。 针对基于Node.js生态系统的前端项目,比如Vue.js应用: - **安装全局依赖** 为了能够顺利地构建和打包Vue项目,需要确保已安装`npm`或`yarn`作为包管理器,并通过它们来获取项目所需的各种库和支持工具。此外还需要安装Vue CLI以便更好地管理和操作Vue应用程序[^3]。 ```bash npm install -g @vue/cli ``` - **初始化与更新本地依赖** 进入目标项目的根目录下执行如下命令,这将会读取`package.json`中的定义并下载所有指定版本的模块至当前工作区内的`node_modules`文件夹里去。 ```bash npm install ``` 对于Java开发环境下的Spring Boot工程,则需注意JDK的选择及其路径设置问题。如果系统存在多个版本的JDK共存情况的话,建议利用专门的应用程序(例如360软件管家)辅助查找确切位置后再做相应调整[^4]。 #### 配置与优化构建脚本 一旦上述准备工作完成之后就可以着手准备具体的编译选项了。通常情况下,默认提供的配置已经足够满足大多数场景的需求;然而根据实际业务逻辑复杂度的同可能还需进一步定制化处理方式。 特别是当涉及到跨平台兼容性考量或是希望减少最终产物体积大小的时候,深入研究官方文档所提供的高级特性就显得尤为重要了。 #### 实施自动化部署方案 借助于像`vsce`这样的专用插件可以帮助开发者更高效便捷地将自定义扩展分享给其他用户群体。该工具支持一系列丰富的功能集,涵盖了从创建新条目直至将其上传至市场等一系列环节的操作需求[^1]。 而对于Web类别的静态资源而言,往往会选择先压缩成ZIP格式再传输到远程主机上解压启动服务的方式来进行分发传播。至于动态语言编写的服务端接口则更多采用容器镜像的形式推送至云平台上托管运行。 #### 使用 Docker 进行部署 考虑到持续集成/持续交付(CI/CD)管道建设的要求,越来越多的企业倾向于把整个应用程序封装在一个独立可控的小型操作系统环境中——即所谓的微服务体系架构之下运作。因此学会运用Docker技术栈便成为了一项必备技能点之一[^2]。 ```dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp ADD target/demo.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值