当前位置:网站首页>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对版本号做约束和处理
边栏推荐
- MySQL复制表结构、表数据的方法
- matlab封闭曲线拟合 (针对一些列离散点)
- Detailed explanation of DenseNet and Keras reproduction code
- 误差指标分析计算之matlab实现【开源1.0.0版】
- QT signals 保存到 QMap
- 用matlab打造的摩斯电码加解码器音频版,支持包括中文在内的任意字符
- 狗都能看懂的CenterNet讲解及代码复现
- Database knowledge: SQLServer creates non-sa user notes
- IoU, GIoU, DIoU and CIoU in target detection
- MySQL配置文件配置
猜你喜欢
matlab的2DCNN、1DCNN、BP、SVM故障诊断与结果可视化
用手机也能轻松玩转MATLAB编程
在线公众号文章内容转音频文件实用小工具
微软电脑管家2.0公测版体验
2DCNN, 1DCNN, BP, SVM fault diagnosis and result visualization of matlab
基于子空间结构保持的迁移学习方法MLSSM
自适应迁移学习核极限学习机用于预测
EfficientNet解读:神经网络的复合缩放方法(基于tf-Kersa复现代码)
数据库知识:SQLServer创建非sa用户笔记
Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
随机推荐
FCN——语义分割的开山鼻祖(基于tf-Kersa复现代码)
DropBlock: 卷积层的正则化方法及复现代码
IoU, GIoU, DIoU and CIoU in target detection
MySQL大总结
SQL存储过程详解
电脑软件:推荐一款磁盘空间分析工具——WizTree
Mac安装PHP开发环境
叔本华的《人生的智慧》感悟
Faster - RCNN principle and repetition code
Implementation of ICEEMDAN Decomposition Code in MATLAB
mysql月份比較是否相等
Hardware Knowledge: Introduction to RTMP and RTSP Traditional Streaming Protocols
水平垂直居中的12种方法,任意插入节点的方法,事件的绑定的三种方法和解绑的方法,事件对象,盒子模型
反射与枚举
科研绘图图表类型种类繁多,本文告诉你如何选择!
子空间结构保持的多层极限学习机自编码器(ML-SELM-AE)
Error ER_NOT_SUPPORTED_AUTH_MODE Client does not support authentication protocol requested by serv
更改mysql数据库默认的字符集(mysql 存储 emoji表情)
Triton部署mmdeploy导出的TensorRT模型失败篇
基于EEMD+GRU+MLR的时间序列预测