脚手架的基本实现

    1. 1.首先初始化文件:yarn init ,生成一个package.json的文件,JSON文件中指定cli.js的入口文件添加"bin":"cli.js";
    2. 2.新建一个cli.js 的文件作为cli(脚手架)的文件入口同时在里面写逻辑业务,这个跟以往的js不一样的是脚手架(cli)的应用必须要有这样的文件头 #!/usr/bin/env node (必须条件) node CLI 应用入口文件必须有这样的文件头
    3. 3. 如果是Linux 或者macOS 系统下还需要修改此文件的读写权限 755 其通过 chmod 755 cli.js 实现
    4. 4. yarn link 链接全局 然后在输入文件名 查看控制台是否输出
    5. // 脚手架的工作原理
    6. // 1.通过命令交互询问用户问题
    7. //2.根据用户回答生成文件
    8. // 发起用户询问 可以用inquirer模块
    9. const inquirer= require('inquirer');
    10. inquirer.prompt([{
    11. type:'input',
    12. name:'name',
    13. message:'Project name?'
    14. }]).then(answer=>{
    15. //目标目录
    16. const tmplDirt =path.join(__dirname,'templates');
    17. //模板目录
    18. const destDirt =process.cwd();
    19. //将目标目录转换成模板目录
    20. fs.readdir(tmplDir,(err,files)=>{
    21. if(err) throw err
    22. files.forEach(file=>{
    23. //通过模板引擎渲染文件
    24. ejs.readerFile(path.join(tmplDir,file),anwsers,(err,result)=>{
    25. if(err) throw err
    26. //将结果写入目标路劲
    27. fs.writeFileSync(path.join(destDir,file),result)
    28. })
    29. })
    30. })
    31. })