我们经常使用 npm i  -g  xxxx 安装完成一个包之后,就能直接使用对应的指令。例如安装  vue-cli 或者 express 等

那么下面我们自己做一个类似的效果:

首先要对 npm 发布包,有一定了解,不清楚的,可以先参考 我的另一篇博客https://www.cnblogs.com/muamaker/p/10435481.html

1、首先,我们在 package.json 里面加入 bin 指令:如图

  

2、在项目下面,新建一个文件 link -> link.js

3、在 link.js 里面,我们需要加入 如下内容:

  

#!/usr/bin/env node  是告诉机器,需要用node来执行这个文件
 
console.log(process.argv);  是打印运行的参数,具体的清楚的,可以去自行百度 node process
 
 
4、做完以上内容,就可以 发布 到 npm 仓库了,具体如何发布,参考 我的另一篇博客https://www.cnblogs.com/muamaker/p/10435481.html
 

5、使用: 另外打开一个 cmd 输入并执行

  

npm i  -g manny_demo

  

6、输入

mannymu  aa

可以看见,有打印出内容,数组的第三位就是,输入的指令参数。

7、扩展

  既然生成了指令,也能运行相关的 node 代码。那么接下来,就可以随便自己写什么了,比如vue-cli的实现方式,当时输入指令,就给你 初始化 并 复制 一份 提前写好的架构出来

注意:一定要注意,npm 包的名称,不要一样的,否则会发布失败

npm 发布一个全局的指令的更多相关文章

  1. 手把手教你用npm发布一个包,详细教程

    我们已经实现了路由的自动化构建,但是我们可以看到,一大串代码怼在里面.当然你也可以说,把它封装在一个JS文件里面,然后使用require('./autoRoute.js')给引入进来,那也行.但是,为 ...

  2. 怎么用npm发布一个包,详细教程

    我们已经实现了路由的自动化构建,但是我们可以看到,一大串代码怼在里面.当然你也可以说,把它封装在一个JS文件里面,然后使用require('./autoRoute.js')给引入进来,那也行.但是,为 ...

  3. 用node发布一个包

    手把手教你用npm发布一个包 注:本文引用于简书 http://www.jianshu.com/p/36d3e0e00157   但是内容的话,还是一样的,也就是继续之前的工作,将那个autoRout ...

  4. 如何发布一个自定义Node.js模块到NPM(详细步骤)

    咱们闲话不多说,直接开始! 由于我从没有使用过MAC,所以我不保证本文中介绍的操作与MAC一致. 文章开始我先假定各位已经在window全局安装了Node.js,下面开始进行详细步骤介绍: 本文本着, ...

  5. 如何发布一个自定义Node.js模块到NPM(详细步骤,附Git使用方法)

    咱们闲话不多说,直接开始! 由于我从没有使用过MAC,所以我不保证本文中介绍的操作与MAC一致. 文章开始我先假定各位已经在window全局安装了Node.js,下面开始进行详细步骤介绍: 本文本着, ...

  6. 我想写一个前端开发工具(一):在npm发布模块

    有必要说说我为什么要开始写这个,正文从下面的第一条开始 我最近忙于公司的项目,一直没有抽出时间来写文章.本来想每个月写一片文章,保质保量,无奈上个月没有坚持. 这段时间有点忙,主要是由于公司业务调整, ...

  7. 在npm上发布一个自己的包

    1.首先你要在npm上创建一个账号,这里需要输入邮箱的,注意激活邮箱否则无法publish自己的包 2.在本地创建一个文件夹,输入npm init初始化项目,这里是我使用npm init创建的pack ...

  8. 如何发布一个npm包(基于vue)

    前言:工作的时候总是使用别人的npm包,然而我有时心底会好奇自己如何发布一个npm包呢,什么时候自己的包能够被很多人喜欢并使用呢...今天我终于迈出了第一步. 前提:会使用 npm,有 vue 基础, ...

  9. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到JVM的实时运行状态?

    https://alibaba.github.io/arthas/ Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决 ...

随机推荐

  1. Content of "Essential Software Test Design"

    Content of "Essential Software Test Design" 2015-11-16 PART I 7 TEST DESIGN TECHNIQUES: AN ...

  2. iOS最新Mac OS X 10.11之后 安装cocoapods及使用详解

    iOS 最新版 CocoaPods 的安装流程 一.安装方法: 1.移除现有Ruby默认源 gem sources --remove https://rubygems.org/ 为了提高安装的成功几率 ...

  3. 【转载】基于rasa的对话系统搭建(上)

    文章介绍使用rasa nlu和 rasa core 实现一个电信领域对话系统demo,实现简单的业务查询办理功能,更完善的实现需要进一步数据的收集.demo基于玩具数据集,可以达到下面的效果: Bot ...

  4. hdoj:2086

    A1 = ? Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  5. [原创]电路仿真设计multisim 14安装,破解,汉化教程

    硬件工程师开发产品.利用multisim 等辅助软件进行设计仿真可以有效提高开发效率,减少设计弯路. 本文博乐就带大家一起进行multisim 14安装破解汉化. 首先下载multisim 14安装文 ...

  6. saltstack通过jinja模板,grains方式将配置的变量值写入到配置文件中?

    需求描述: 在通过saltstack进行jinja模板获取值的时候,可以通过grains的方式,获取一些操作系统相关的信息,比如,OS,ip地址等,在这里演示下,做个记录. 演示: 1.修改sls文件 ...

  7. Centos7 php-fpm root 运行,执行 kill 等系统命令

    Centos7 php-fpm root 运行,执行 kill 等系统命令 前提 当前系统安装的是宝塔环境,PHP的环境在如下的目录: /www/server/php/72/etc 1 修改 php- ...

  8. String 类型的值能够被反射改变从而引发的意外事件

    今天刷技术文章,遇到了一个问题,用 Java 反射机制去修改 String 变量的值,出于深入研究,就发现了一个问题,即,用初始值比较修改后的值,用 == or .equals() 方法,出现了相等的 ...

  9. 四、Sql Server 基础培训《进度4-插入数据(实际操作)》

    知识点: 假设有订单表 CREATE TABLE Order ( ID int identity(1,1) not null primary key, --内码 BillNo varchar(100) ...

  10. mysql 命令行 备份 恢复数据

    找到mysql启动位置 whereis mysql 备份指定数据库 包括表结构和数据 使用命令mysqldump 数据库名 -u 用户名 -p > 存储文件路径 [root@izm5e16gjd ...