{"_id":"07.learn_cli","name":"07.learn_cli","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"07.learn_cli","version":"1.0.0","description":"- 自定义终端命令\r     入口文件 index.js，且其上配置运行环境 #!；\r     npm init 初始化npm环境：生成package.json文件，同时在bin属性下配置终端命令；","main":"index.js","bin":{"why":"index.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["teddyelder","vue"],"author":{"name":"teddyelder"},"license":"MIT","homepage":"https://gitee.com/codingdream123123","repository":{"type":"git","url":"https://gitee.com/codingdream123123"},"dependencies":{"commander":"^9.2.0","download-git-repo":"^3.0.2","ejs":"^3.1.7","open":"^8.4.0"},"_id":"07.learn_cli@1.0.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-jwnS+nh+MpmOBAK+T490Vup9RXzr41zx9k7wSLitUDJCuR8nnM1rytYpVHfud2R+CD4qJY8uzJAvZ8NkV/qeoA==","shasum":"65b1ff136c969f1c3f57be329f227424460b4a1d","tarball":"https://registry.npmjs.org/07.learn_cli/-/07.learn_cli-1.0.0.tgz","fileCount":13,"unpackedSize":9293,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFQgfOZEWfLwttpjTvBGDgpP65ykLQhvnw+B+shZbq6AIhAP0JW0CoaBnuGV+bM6arHPyKQKo+1ITPPv4e9hfoPI/D"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicKLNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqHhw/+KHQVLotnjYJRUzBZIs5qt5Q0xjBzFQ807+8tpzURtF7wNp6K\r\nWVmQxJ3nbiuywGgbl8IrDcM0+E9IJPryGiBBGsPG5LHDN0RteFinjQ/Rg3KG\r\n7OAk23oGPlDCknOHUTHerd1inWfewAbbS/5OX6731gGad8wirJ5bMTE96Dfg\r\nUN/giUArkuAK9dMdwZHCl9KPmjauzQkrOaF8+RXgaD1mFqOm32q7u+YzV7H3\r\n6AXhPPLGrX4UwJuMso0LXJTQGdj+iDVuQqhyRwSHGTmnCMzfWYW/LRh9Z/ZH\r\neR51y4Bekt5nfMYDcXeTAMKcT+ln18Pqa24HYusFhFsbfs3slKgrZL26Lmgm\r\nWwgag5rh+QHv1aatLWPije5WnHZemAzAUedznAl69sagOGR1LyqSzQLdO/AI\r\n7nvAIciC/cMNWdwkbrW4WgKxW/jv73vfylGBK/cdAWl4b35p4DFDEshD6oh5\r\nLmoc6G/Wis0+losMEmT5d4rF898qd/d2iK43qiOMdUIK7gl2vGC4QmlfxRro\r\nq1HLZsM+4MNp2esepbjcvM9wqjNxp8nsXeEuIupgxGBbqzFa3X2k4UdvK4Zj\r\nflYSzEJngYjUW4Mpqfu5l5GJq7IrmGY8olcivQfCa5q9+F9vf0X99MZT11Nx\r\nmsk1Nc5ajBsYjnOozDilZGmg/0zonS+HnII=\r\n=hV4o\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"teddyelder","email":"2264421672@qq.com"},"directories":{},"maintainers":[{"name":"teddyelder","email":"2264421672@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/07.learn_cli_1.0.0_1651548876975_0.9671813840775225"},"_hasShrinkwrap":false}},"time":{"created":"2022-05-03T03:34:36.975Z","1.0.0":"2022-05-03T03:34:37.125Z","modified":"2022-05-03T03:34:37.283Z"},"maintainers":[{"name":"teddyelder","email":"2264421672@qq.com"}],"description":"- 自定义终端命令\r     入口文件 index.js，且其上配置运行环境 #!；\r     npm init 初始化npm环境：生成package.json文件，同时在bin属性下配置终端命令；","homepage":"https://gitee.com/codingdream123123","keywords":["teddyelder","vue"],"repository":{"type":"git","url":"https://gitee.com/codingdream123123"},"author":{"name":"teddyelder"},"license":"MIT","readme":"- 自定义终端命令\r\n    入口文件 index.js，且其上配置运行环境 #!；\r\n    npm init 初始化npm环境：生成package.json文件，同时在bin属性下配置终端命令；\r\n\r\n- version-help-option ：帮助和可选信息\r\n    其实是分开的：我们在核心文件夹core下面做配置：\r\n    version\r\n    help\r\n    option，\r\n    我们如何配置脚手架的基本信息；通过commander辅助创建脚手架；\r\n\r\n- 创建create项目的命令：创建其他指令\r\n    先将github中的项目下载到本地 -> npm install安装项目依赖 -> npm run serve将项目运行起来 -> 打开浏览器\r\n\r\n- 执行运行命令和打开浏览器\r\n    1. clone项目\r\n    2. npm install 安装依赖\r\n    3. npm run server运行项目\r\n    4. 打开浏览器\r\n\r\n- 创建组件的流程和ejs模块\r\n    1. 有对应的ejs模块\r\n    2. 编译ejs模板result\r\n    3. 将result写入到vue文件中\r\n    4. 放到对应的文件夹中\r\n    【**总流程**】：用户在控制台输入：why addCpn NavBar -> 执行create中相应的action -> 执行actions中的actions函数，根据ejs模板动态生成相应的文件，并将相应的文件写入到用户想要放入的文件夹中！！！\r\n\r\n- ejs模块的编译过程（**重点**）\r\n    compile函数，在utils中的：主要是renderFile函数的运用\r\n    ```javascript\r\n    const compile = (template, data) => {\r\n        const templatePosition = `../templates/${template}`;\r\n        const templatePath = path.resolve(__dirname, templatePosition);\r\n        return new Promise((resolve, reject) => {\r\n            ejs.renderFile(templatePath, {data}, {}, (err, result) => {\r\n                if(err) {\r\n                    console.log(err);\r\n                    reject(err);\r\n                    return;\r\n                }\r\n                resolve(result);\r\n            });      \r\n        })\r\n    }\r\n    ```","readmeFilename":"readme.md"}