开发自己的脚手架工具
入口文件和基本配置文件
mhist-cli
├── index.js
├── package.json
可以通过命令创建package.json文件
1 |
|
终端命令
需求:在终端输入指令后,会显示你所定义的相应的类似版本号之类的内容。
知识: #! (#!是特殊的表示符,其后面跟的是解释此脚本的shell的路径,这个是告诉系统,应该调用哪个东西来运行他。)
定义路径
1 |
|
同时在package.json中添加一个对象
1 |
|
这时候需要使用 npm link 命令,将环境进行链接,之后在终端输入你指定的mhist-cli就会在终端输出你需要的相应的结果,其实也就是能够直接完成 node index.js.
自定义终端命令
基于commander.js
1 |
|
版本号
通常情况下,在package.json中会有项目当前的版本号,我们可以通过commander中的
1 |
|
动态获取到最新的版本号,以便于在终端进行输出。
在文件根目录中终端中输入 脚手架名称 –version 即可显示对应的版本号,例如 mhist-cli –version或者mhist-cli -V ,其输出结果为 1.0.0
#如果希望程序响应-v选项而不是-V选项,
#只需使用与option方法相同的语法将自定义标志传递给version方法
program
.version(‘0.0.1’, ‘-v, –version’)
开发过程中遇到的问题
下载项目模板,需要自动化实现npm install,通过自己的脚手架创建项目时,出现以下问题:
events.js:292 throw er; // Unhandled 'error' event ^ Error: spawn npm ENOENT at Process.ChildProcess._handle.onexit (internal/child_process.js:269:19) at onErrorNT (internal/child_process.js:465:16) at processTicksAndRejections (internal/process/task_queues.js:80:21) Emitted 'error' event on ChildProcess instance at: at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12) at onErrorNT (internal/child_process.js:465:16) at processTicksAndRejections (internal/process/task_queues.js:80:21) { errno: -4058, code: 'ENOENT', syscall: 'spawn npm', path: 'npm', spawnargs: [ 'install' ] }
解决方案:issue
按照上述issues的说法并没有解决相应的问题,在运行npm命令时需要考虑平台的问题。
1 |
|
当然在这之前,我也按照搜到的资料,设置了环境变量,然后现在成功运行之后,为了控制变量,删除了之前添加的环境变量,发现项目模板能够正确创建,同时能够自动通过npm install下载需要的依赖包。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 亚东`s blog!
评论