当前位置:网站首页>npm包发布与迭代
npm包发布与迭代
2022-08-04 05:43:00 【s-alone】
npm adduser
# 设置npm镜像仓库
npm config set registry https://registry.npmjs.org
# 添加用户到.npmrc文件
npm adduser [--registry=url] [--scope=@orgname] [--always-auth] [--auth-type=legacy]
# 查看登录用户
npm whoami
npm pack
开发npm包,经过build之后需要测试,通过npm pack之后,就会在当前目录下生成一个tgz文件,可把该文件拷进项目进行测试,测试无误后可放心publish了
npm publish
npm publish [<tarball>|<folder>][--tag <tag>] [--access <public|restricted>][--otp otpcode] [--dry-run]
# 指定仓库发布
npm publish --registry=https://registry.npmjs.org/
# 发布有命名空间的包
npm publish --access=public
# 当你的包是以你的usename为命名空间,譬如:@salone/watermaker,npm会认为这个包是私有的,当你npm publish时会报错,这是要附上--access=public告诉npm这个包是以开放包发布的即可。
# (仅仅当发第一个版本时会要求带access=public;当npm仓库中已经存在了这个包,日常更新版本无需加access)
打包文件内容
npm publish/pack 的时候会把项目目录里面所有的文件都打包进去, 但是往往有一部分目录和文件不想发布上去,比如项目的源码、编译脚本等等信息。如何发布用户需要使用的相关文件呢?
使用
.gitignore设置忽略文件**.gitignore 设置的忽略文件,在git代码管理和 npm publish **都会被忽略
使用
.npmignore设置忽略文件.npmignore 的写法跟 .gitignore 的规则完全一样。若同时使用了 .npmignore和 .gitignore,只有 .npmignore 会生效,优先级比较高。
在
package.json的files字段设置包含文件直接在 package.json 中 files 字段设置发布哪些文件或目录。这个优先级高于 .npmignore 和 .gitignore
选择哪种方法,根据自己的需求而定。一般情况,使用方法三。
默认忽略文件:
.*.swp
._*
.DS_Store
.git
.hg
.npmrc
.lock-wscript
.svn
.wafpickle-*
config.gypi
CVS
npm-debug.log
node_modules/
package.json 中main字段配置的文件(入口文件)
默认包含文件
默认被包含, 即便设置忽略也无效
package.json
CHANGELOG
README
LICENSE
入口文件
实例
{
"name": "watermaker_shaoalong",
"version": "1.0.8",
"description": "",
"main": "watermaker.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"release": "node ./config/release.js test"
},
"author": "shaoalong",
"license": "ISC",
"publishConfig": {
"registry": "https://registry.npmjs.org" // npm发布仓库
},
"files": [ // 文件要包含的文件。如果不设置该字段,会把所有文件都打包进去
"dist" // 只要dist目录下的文件
],
"devDependencies": {
"fs-extra": "^10.1.0",
"inquirer": "^8.2.4",
"semver": "^7.3.7",
"standard-version": "^9.5.0"
},
"dependencies": {
"@shaoalong/test": "0.0.1"
}
}
changelog
standard-version
我们就可以使用 standard-version 进行版本管理自动化,包括更新 CHANGELOG.md,以及使用 git tag。它也会自动修改 package.json 里的 version。
semver
Semver是一个专门分析Semantic Version(语义化版本)的工具
可借助semver对版本号做约束和处理
边栏推荐
猜你喜欢

Faster RCNN原理及复现代码

FCN——语义分割的开山鼻祖(基于tf-Kersa复现代码)

电脑知识:台式电脑应该选择品牌和组装,值得收藏

SENet detailed explanation and Keras reproduction code

Error EPERM operation not permitted, mkdir ‘Dsoftwarenodejsnode_cache_cacach两种解决办法

天鹰优化的半监督拉普拉斯深度核极限学习机用于分类

目标检测中的先验框(Anchor)

基于时序模式注意力机制(TPA)的长短时记忆(LSTM)网络TPA-LSTM的多变量输入风电功率预测

QT 出现多冲定义问题

网络技巧:教你给路由器装上电池,断电照样可以上网!
随机推荐
Base64编码原理
对产品设计,架构设计的一点思考
如何画好业务架构图。
DropBlock: 卷积层的正则化方法及复现代码
科研绘图图表类型种类繁多,本文告诉你如何选择!
Provide 和 Inject 的用法
Based on the EEMD + + MLR GRU helped time series prediction
【C# - 爬虫】使用Selenium实现爬虫,获取近七天天气信息(包含完整代码)
七夕专属程序员的浪漫
基于爬行动物搜索RSA优化LSTM的时间序列预测
YOLOv3详解:从零开始搭建YOLOv3网络
专属程序员的浪漫七夕
如何用matlab做高精度计算?【第一辑】
Network skills: teach you to install batteries on the router, you can still surf the Internet when the power is cut off!
matlab让我的旧手机起死回生
E-R图总结规范
手把手教你Charles抓包工具使用
SQL存储过程详解
VMD结合ISSA优化LSSVM功率预测
Interpretation of EfficientNet: Composite scaling method of neural network (based on tf-Kersa reproduction code)