npm包change-version的编写
来源:互联网 发布:解毒丹 知乎 编辑:程序博客网 时间:2024/06/08 17:10
前端现在大多数项目都是利用npm在管理项目依赖的包,以前都是在自己项目中直接引用其他人写好的包。在这次项目优化中有一个需求:在项目发布到服务器的时候因为是集群部署的手动发布就比较麻烦,于是就想减少人的工作量提高效率。在build打包的时候将生成的dist文件压缩成tar.gz格式的包,然后调用docker-build的cli命令将这个包上传并构建一个docker容器,在其中就要更改package.json文件中的version参数值和修改scripts中的docker-build的包的版本号。开始找了很久没有找到合适的npm包,于是就打算自己写一个。
首先,在github上新建一个change-version的项目,然后clone到本地。在克隆下来的这个本地的文件夹中运行:npm init命令,然后按照提示依次输入对应的参数值,最后在该文件夹下生成一个package.json文件,如下:
{ "name": "change-version", "version": "1.0.0", "description": "更改版本号", "main": "index.js", "scripts": { "test": "" }, "repository": { "type": "git", "url": "https://github.com/haiyanglong/change-version.git" }, "keywords": [ "自动更改package中的版本号", "版本号", "version", "chenge" ], "author": "995855294@qq.com", "license": "ISC"}然后用自己熟悉的编辑器在该文件夹下的根目录新建一个index.js文件,再在package.json中新添加一个bin参数:
"bin": {
"change-version":"./index.js"
}然后在index.js中编写nodejs代码做自己想要执行的步骤。
首先在第一行加上如下的一行,这是必须的是nodejs写shell命令,当脚本有权限执行的时候告诉PC用什么程序来运行:
#!/usr/bin/env node
然后就是安装commander模块接收参数安装命令:npm install --save commander执行完成以后可以看到在
package.json中自动添加了dependencies参数
"dependencies": { "commander": "^2.11.0" }
然后,在index.js中引入该模块,并定义接收参数。commander具体用法请看https://github.com/tj/commander.js:
var program = require('commander')program .version(localFile.version) .allowUnknownOption() .description('set version and change your package.json file') .option('-sv, --sv [sv]', 'your version', y+'.'+m+'.'+d) .option('-db, --db [db]', 'is set docker-build version', 'false') .option('-evn, --evn [evn]', 'your evn', 'prod')program.parse(process.argv)这里设置3个可选参数sv,db,evn,然后我们在这个文件下运行命令node index.js change-version -h可以看到如下帮助文档:
Usage: change-version [options] //set version and change your package.json file Options: -V, --version //output the version number -sv, --sv //your versionjson -db, --db [db] //is set docker-build version -evn, --evn [evn] //your evn -h, --help //output usage information
再根据传进来的参数实现自己需要实现的逻辑,这样简单的npm cli命令就完成了。最后在运行npm login登录自己在npm平台的账号和密码,登录成功以后执行npm publish上传到npm服务器就完成了,这样别人直接运行
npm install change-version就可以安装这个依赖包了。
项目中需求具体实现代码请看:https://github.com/haiyanglong/change-version
阅读全文
0 0
- npm包change-version的编写
- Npm包的开发
- 引用别人的项目cannot change version
- nodeJs的包管理工具npm
- npm发布自己的包
- 使用npm发布自己的包到npm官网上
- node的包管理器----npm的使用
- idea change scala version
- 卸载已安装的npm包
- npm 发布自己的包操作
- npm查看全局安装过的包
- npm 查看全局安装过的包
- Node.js的包管理工具npm学习
- 在npm发布自己的js包
- npm 包下载很慢的解决办法
- npm难以安装包的解决方法
- npm查看已经安装的包
- mac上npm包的安装路径
- 枚举排列
- C语言内存管理函数总结(1)
- springboot学习三(springboot结合spring data jpa和freemarker显示)
- vue 页面跳转,传数据
- FreeRTOS列表和列表项
- npm包change-version的编写
- collections 模块整理
- ssm练手(CRUD) 2、修改sql方法,并利用JUnit结合数据库进行测试
- HDU 6191 DFS序+可持久化字典树
- 文章标题
- 实训开始!~~
- pyspark中like的用法
- Unity_寻路系统
- GIt