新建一个文件夹,命名为:new-file2
新建一个JS文件,命令为:new-file2.js
编辑如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| #!/usr/bin/env node const { sep, join, dirname } = require('path'); const { readFile, writeFile } = require('fs');
//获取文件命令(带后缀) let fileNameAndExt = process.argv.splice(2)[0]; //获取执行命令的路径(即新创建文件的路径) let fileDir = process.cwd()+ sep; //如果参数不为空 if(fileNameAndExt && fileDir){ let fileName = (fileNameAndExt.split('.'))[0] if(fileName){ let date = new Date(); //获取当前时间 24小时制 let datetime = date.toLocaleString('chinese',{ hour12: false }); console.log(fileNameAndExt+' 已生成...') //设置模板 defaults = { normal: [ '---', 'title: '+ fileName , 'date: '+ datetime , 'tags:', 'categories:', '---' ].join('\n') };
//写模板 writeFile(fileNameAndExt, defaults.normal,(error) => { // In case of a error throw err exception. if (error) throw err; }); } }
|
在new-file2路径下初始化
然后根据提示设置,完成该步操作后将为生成一个package.json,我们需要在里面添加命令,如下:
1 2 3 4 5
| { "bin": { "new": "new-file2.js" } }
|
完整版如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| { "name": "new-file2", "version": "2.0.0", "description": "new XXX.xx", "main": "new-file2.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "bin": { "new": "new-file2.js" } }
|
建立软链接,还是在new-file2路径下
该操作后,会在全局的npm包环境中帮我们建立一个软链,可以通下面的命令查询:
如果要去除这个软链,执行下面的命令
new-file2离线包