当前位置:网站首页>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对版本号做约束和处理
边栏推荐
猜你喜欢
curl (7) Failed connect to localhost8080; Connection refused
QT 出现多冲定义问题
Error ER_NOT_SUPPORTED_AUTH_MODE Client does not support authentication protocol requested by serv
Online public account article content to audio file practical gadget
Mac安装PHP开发环境
MySQL基础(DDL、DML、DQL)
如何用matlab做高精度计算?【第三辑】(完)
NelSon:一款新的适配matlab编程语法的编程工具
如何用matlab做高精度计算?【第二辑】
mysql基础(4)
随机推荐
类图规范总结
Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
微信小程序实现活动倒计时
Verilog“七宗罪”
元素的增删克隆以及利用增删来显示数据到页面上
舍不得花钱买1stOpt,不妨试试这款免费的拟合优化神器【openLU】
NelSon:一款新的适配matlab编程语法的编程工具
matlab让我的旧手机起死回生
基于时序模式注意力机制(TPA)的长短时记忆(LSTM)网络TPA-LSTM的多变量输入风电功率预测
Triton部署mmdeploy导出的TensorRT模型失败篇
SENet详解及Keras复现代码
Unable to preventDefault inside passive event listener due to target being treated as passive. See
手把手教你Charles抓包工具使用
mysql锁机制
核心价值观编码器【matlab版】
科研绘图图表类型种类繁多,本文告诉你如何选择!
QT 出现多冲定义问题
set集合
狗都能看懂的变化检测网络Siam-NestedUNet讲解——解决工业检测的痛点
对象的扩展补充