npm link 安装本地模块,将本地模块cli化
2023-09-11 14:16:39 时间
第三方学习地址
http://mp.weixin.qq.com/s?__biz=MzAxMTU0NTc4Nw==&mid=2661157390&idx=1&sn=6d96e54f1c4ecd5201a03fe76cc5f5a9&chksm=80d5d7dab7a25ecc5d1c47e81b32a4c88e8d70b1fcfd849777ca9605d8326339dff9e29e6e37&mpshare=1&scene=23&srcid=1218i1tXLnRQfPHvJmqSyRHR#rd
1)初始化模块
确认模块名称
$ npm info xxx
如果没有找到对应的包,说明你可以使用这个名字,然后在github建立仓库,clone到本地即可
$ npm init -y
2)cli二进制模块
Node.js分2种模块
-
普通模块,供代码调用
-
二进制模块,提供cli调用
大家都知道,生成器是cli工具,所以我们应该使用cli二进制模块
手动修改package.json文件,增加 bin 配置
{ "name": "a", "version": "1.0.0", "description": "", "main": "index.js", "bin": { "gen": "gen.js" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC"
}
这里主要增加里一个bin
的配置,bin里的gen
为cli的具体命令,它的具体执行的文件gen.js,大家看到这是一个plain old object类型,所以可以配置多个命令的,各位可以按照自己的喜好来。
既然gen
的执行文件是gen.js
,我们当然需要创建创建它
$ touch gen.js
如果是windwo 也可以选择这样写:#! E:\nodejs\node
#!/usr/bin/env node var argv = process.argv; var filePath = __dirname; var currentPath = process.cwd(); console.log(argv) console.log(filePath) console.log(currentPath)
说明
-
argv是命令行的参数
-
filePath是当前文件的路径,也就是以后安装后文件的路径,用于存放模板文件非常好
-
currentPath是当前shell上下文路径,也就是生成器要生成文件的目标位置
至此,二进制模块的代码就写完了,下面我们测一下
1)本地安装此模块
在package.json文件路径下,执行
$ npm link
/Users/sang/.nvm/versions/node/v4.4.5/bin/gen -> /Users/sang/.nvm/versions/node/v4.4.5/lib/node_modules/a/gen.js/Users/sang/.nvm/versions/node/v4.4.5/lib/node_modules/a -> /Users/sang/workspace/github/i5ting/a
此时说明已经安装成功了。
2)执行gen测试
$ gen
[ '/Users/sang/.nvm/versions/node/v4.4.5/bin/node', '/Users/sang/.nvm/versions/node/v4.4.5/bin/gen' ]/Users/sang/workspace/github/i5ting/a/Users/sang/workspace/github/i5ting/a
可以换不同的目录来测试一下,看看结果的不同,来体会上面3个变量的妙用。
相关文章
- 使用npm安装electron不成功的解决方法
- npm的安装和更新
- 在虚拟机下安装hadoop集成环境(centos7+hadoop-2.6.4+jdk-7u79)
- [NPM + React] Prepare a Custom React Hook to be Published as an npm Package
- [NPM] Update published npm packages using np
- [NPM] Publish npm packages using npm publish
- [NPM] Pull out npm scripts into another file with p-s
- [NPM] Pass arguments to npm scripts
- uni-app:npm安装js-md5第三方库(hbuilderx 3.7.3 / npm 9.5.0)
- [NPM] Make npm scripts cross-environment friendly
- VMware ESXi 6.7 安装及群集配置介绍
- paddle 31 安装paddledetection并训练自己的数据集(支持voc与coco数据集)
- npm安装serve实现静态资源的访问
- 使用npm安装TypeScript
- electron安装npm和cnpm均失败Failed at the electron@5.0.13 postinstall script.
- 怎么修改电脑管家中软件自动安装路径位置
- Windows系统下使用protobuf:protobuf的简介、安装、使用方法之详细攻略
- linux下安装qt教程
- 005-jdk安装卸载
- Nodejs基本概念及Nodejs、npm安装测试
- Windows8-x64 VMWare安装Linux CentOS6-x64
- R-ArcGIS探秘(1)安装以及Sample执行
- 监控服务器配置(二)-----Grafana安装配置
- npm安装vue报错:npm ERR! code ETIMEDOUT