素材巴巴 > 程序开发 >

npm包发布详细教程

程序开发 2023-09-19 16:40:43

将我们编写的代码发布到npm仓库后就可以在多个不同的项目里引入使用,不管是公司内部使用还是分享给互联网上其他用户,都很方便。

(npm插件制作的教程可以参考另一博文:传送门)

一、新建项目

1、建立目录

新建一个npm项目文件夹wxmp-rsa,
在里面新建src文件夹,src里新建index.js,index.js就作为我们的代码主文件,在里面简单写几行代码,
然后新建npm项目说明文档README.md,
最后目录如下:
在这里插入图片描述

2、初始化git

在npm项目根目录运行终端命令:

git init .
 

3、编写package.json

在npm项目根目录运行终端命令,初始化生成package.json文件:

npm init --yes
 

package.json重点字段说明:

根据上述说明简单修改下package.json如下:
在这里插入图片描述

4、添加LICENSE

LICENSE即开源协议文件,这里使用MIT协议类型。

MIT LicenseCopyright (c) 2020 Neo HanPermission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.

5、配置npm上传白名单

配置npm上传的文件白名单,可以指定哪些文件上传哪些不上传,
比如我这里不想直接发布src里的index.js源码,而是发布dist目录下的index.min.js(index.js压缩后的文件),按以下配置:
在package.json里,修改main字段的路径指向dist/index.min.js:

"main": "dist/index.min.js"
 

添加files字段来配置要上传npm的文件白名单目录:

"files": ["dist"
 ]
 

这样dist文件夹会上传npm,而src文件夹就不会上传,想保存src源码就上传项目到git远程仓库就行,这样git仓库保存了完整项目,而npm只包含部分项目文件。

6、关联github地址

如果想把npm包和项目github地址关联起来,首先项目需要先上传到github上,然后package.json添加repository字段:

"repository": {"type": "git","url": "git://github.com/neohan666/wxmp-rsa.git"
 }
 

7、完整package.json内容和项目目录

全部配置完后的完整package.json如下:

{"name": "wxmp-rsa","version": "1.0.0","description": "兼容微信小程序的rsa加解密库,支持超长文本和中文字符","author": "neohan","main": "dist/index.js","scripts": {"test": "echo "Error: no test specified" && exit 1"},"keywords": ["wxmp", "rsa", "jsencrypt", "js", "long"],"license": "MIT","files": ["dist"],"repository": {"type": "git","url": "git://github.com/neohan666/wxmp-rsa.git"}
 }

项目目录如下:
在这里插入图片描述

二、发布npm

1、npm注册登录

npm adduser
 
npm login
 

依次输入用户名和密码登录即可,登录成功后下次就不用再登录了。

2、调试npm

如果不需要调试,可以跳过调试步骤,直接发布。

3、发布

在npm包项目根目录运行命令:

npm publish
 

运行完后,稍等片刻,在npm官网就可以搜索到发布的该npm包了。

// 配置npm全局使用淘宝镜像源
 npm config set registry https://registry.npm.taobao.org
 // 配置npm全局恢复官方镜像源
 npm config set registry https://registry.npmjs.org
 

或者呢,在项目根目录新建.npmrc文件,写入以下内容即可:

registry=https://registry.npmjs.org
 

这样,在此项目下运行npm命令时,默认使用的仓库都是配置官方源,不影响其他项目。

如果要发布一个beta包,运行命令:

npm publish --tag beta
 

4、成员权限

发布npm是用自己的账号发布的,默认只有自己能更新包,如果想要给其他人更新npm包的权限,按以下方式:
打开npm包所在页面,点击右方settings栏,然后在Invite maintainer模块,输入要加入权限的npm账号的username,然后点击invite就加入,下方Maintainers就是有权限的npm项目成员列表。
在这里插入图片描述

5、作废和删除

(上图是npm包页面的settings栏,拉到页面最下面就能看到。能删除的才会显示Delete项。)

(1)作废npm包,就是这里的 Deprecate package,就是给npm包打上已作废的标签,表示不再更新维护。

在npm包页面展示(示例:@babel/polyfill)以及npm i下载时会有提示。

也可以通过命令行操作:npm deprecate ""

具体可以查看npm官方政策:传送门

(2)删除已发布的包,这是非常危险的行为,除非你确定这个包没有其他人使用。

npm官网的删除政策这几年一直在变,我记得之前是不允许删除,现在又可以了,但有一些限制,需满足以下几点才能删除:

三、注意点


标签:

上一篇: 开发新项目npm i 报错 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。