npm 可执行模块的开发&&私服发布
npm init
备注:按照提示书写即可,备注本次使用了npm 私服 (cnpm)所以name 需要按照cnpm scope 的定义,为了简单
我使用的是@cnpm
结果如下:
{
"name": "@cnpm/mybin",
"bin": {
"rong": "bin/rong.js"
},
"version": "1.0.1",
"dependencies": {}
}
rong.js:
#!/usr/bin/env node
console.log("this is a demo app")
以上代码中 bin 的定义是比较重要的,说明这是一个可执行的模块,同时定义了执行的名称以及文件
可执行文件rong.js 中 #!/usr/bin/env node 也比较重要
后面就是具体的操作了,这个可以根据实际场景进行开发
a. cnpm docker 安装
备注:使用淘宝的cnpm 具体安装比较简单,我使用的是docker进行安装的
大体步骤如下:
docker-compose build
备注: 注意需要进行修改 docs/dockerize/config.js
registryHost: 'ip:7001'
scopes: [ '@cnpm', '@cnpmtest', '@cnpm-test','@k8s-net' ],
b. 修改私服地址
npm config set registry http://ip:7001
c. 发布模块
npm login // 按照提示就可以了
npm publish
npm install -g @cnpm/mybin or yarn global add @cnpm/mybin
测试结果
rong
this is a demo app
https://npm.taobao.org/
https://github.com/cnpm/cnpmjs.org/wiki/Deploy-a-private-npm-registry-in-5-minutes
npm 可执行模块的开发&&私服发布的更多相关文章
- npm包开发与发布
把通用的功能开发成npm包,便用使用和维护,更重要的是可以分享给广大的开发者,是不是很激动人心! 那么,步骤如下: 1.创建项目 创建项目目录,npm init ,根据需要输入配置信息(建完后也可以在 ...
- 10 masterless、高可用、salt执行模块开发、sydic架构
1.salt无master 官方文档: http://docs.saltstack.cn/topics/tutorials/quickstart.html 1.使用场景 1.在项目中使用salt,写一 ...
- 前端MVC Vue2学习总结(七)——ES6与Module模块化、Vue-cli脚手架搭建、开发、发布项目与综合示例
使用vue-cli可以规范项目,提高开发效率,但是使用vue-cli时需要一些ECMAScript6的知识,特别是ES6中的模块管理内容,本章先介绍ES6中的基础与模块化的内容再使用vue-cli开发 ...
- 如何开发和发布一个Vue插件
前言 Vue 项目开发过程中,经常用到插件,比如原生插件 vue-router.vuex,还有 element-ui 提供的 notify.message 等等.这些插件让我们的开发变得更简单更高效. ...
- 轻量级模块化开发框架 Hasor 核心模块 v0.0.2 发布
首先引用Wiki的介绍一下Hasor: “Hasor是一款开源框架.它是为了解决企业模块化开发中复杂性而创建的.Hasor遵循简单的依赖.单一职责,在开发多模块企业项目中更加有调理.然 而Ha ...
- PhpStorm创建Drupal模块项目开发教程(4)
编码器是一个检查和操纵代码的Drupal-specific工具. 探测器则是发现异常代码,通常被用于开发中的编码错误预警. 接下来将介绍编码器与探测器在PhpStorm中整合工作的各个步骤,实现PHP ...
- Python 自定义模块的打包和发布
写了一个Python模块,要求打包发布,供同事们使用,好吧,查了一下,网上大部分教程没有一个能把话说明白,不过最后还是解决了,特此记录一下, 以免下次遇到同样问题,也帮助其他有缘人,哈哈. 首先看一下 ...
- Day05:装饰器,三元表达式,函数的递归,匿名/内置函数,迭代器,模块,开发目录
上节课复习:1.函数的对象 函数可以被当作数据取处理2.函数嵌套 嵌套调用:在调用一个函数时,函数体代码又调用了其他函数 嵌套定义:在一个函数内部又定义了另一个函数 def foo( ...
- QQ小程序开发与发布小教程
QQ小程序QQApp,和微信小程序类似,可以直接在手机QQ中直接打开,应用内应用,省去了安装手机APP,非常方便.官方的介绍:QQ小程序为QQ体系下的应用开放平台,可为不同类型的产品提供框架,并在QQ ...
随机推荐
- WIN10局域网共享,经常出现无法访问的现象的解决方法
WIN10的局域网共享是真操蛋啊,用着好好的,重启了一下,突然就不好用了,其他人无法访问我的电脑,百度了半天也没有找到能解决的访问,文章中说的都试过了,该开启的也都开启了,防火墙也关了,没用,后来想着 ...
- 【IIS转】:解决IIS下localhost访问需要输入用户名和密码的问题
[摘要]安装完IIS后,我们可能会发现浏览器输入localhost访问时提示我们输入用户名和密码,本文介绍了这种问题的解决方法,方便站长们调试自己的程序. 在我们的WIN XP系统中安装了IIS,但是 ...
- 十七 Python分布式爬虫打造搜索引擎Scrapy精讲—深度优先与广度优先原理
网站树形结构 深度优先 是从左到右深度进行爬取的,以深度为准则从左到右的执行(递归方式实现)Scrapy默认是深度优先的 广度优先 是以层级来执行的,(列队方式实现)
- nyoj42——连通图加欧拉(连通图板子)dfs
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...
- 浅谈js数据类型识别方法
js有6种基本数据类型 Undefined , Null , Boolean , Number , String ,Symbol和一种引用类型Object,下面我们就来一一看穿,哦不,识别他们. t ...
- Spring入门6事务管理2 基于Annotation方式的声明式事务管理机制
Spring入门6事务管理2 基于Annotation方式的声明式事务管理机制 201311.27 代码下载 链接: http://pan.baidu.com/s/1kYc6c 密码: 233t 前言 ...
- 多进程回声服务器/客户端【linux】
并发服务器端 #include <unistd.h> #include <stdio.h> #include <sys/wait.h> #include <c ...
- python命名空间的本质
Python的命名空间是Python程序猿必须了解的内容,对Python命名空间的学习,将使我们在本质上掌握一些Python中的琐碎的规则. 接下来我将分四部分揭示Python命名空间的本质:一.命名 ...
- MySQL学习(一): MySQL的初步操作与命令
启动与关闭: 用管理员身份运行cmd 启动:net start mysql57 其中mysql57是我的MySQL名称,版本不同名称可能不一样 关闭:net stop mysql57 与上面同理 登录 ...
- 动态PIVOT行转列
id name subject score remark1 l math 86 2 l eng 68 3 l phy 88 4 z chn 99 5 z math 92 6 z com 98 7 z ...