当前位置: 首页 > 后端技术 > Node.js

使用node开发命令行工具搭建多页面

时间:2023-04-03 16:20:28 Node.js

使用node开发命令行工具搭建多页面项目src目录view包含多个页面,每个页面作为一个独立的组件开发,所以每个页面都会有是以下三个文件:page.html、page.js和page.less。那么问题来了,每次要新建一个页面,都需要同时新建三个文件(如果新建N个页面,岂不是...),所以这个重复的工作还是留给处理的工具。正好node.js文件系统提供了操作文件的功能,所以决定用node.js开发一个命令行工具!接收参数,我想直接在命令行输入文件名,然后根据名字创建对应的文件。命令行参数可以通过process.argv系统变量来获取,比如:console.log(process.argv[2])当我需要同时创建时页面很多的时候,只接收一个参数是不行的满足要求,所以我们需要同时接收多个参数。yargs模块可以解决如何处理命令行参数,使用前需要先安装(也可以继续使用process.argv获取参数)像这样npmiyargs--savevarargv=require('yargs')。argvconsole.log(argv.name)argv对象有下划线(_)属性,可以获取开头的非连接参数,返回一个数组像这样varargv=require('yargs').argvconsole.log(argv._)所以我们使用argv._接收多个命令行参数来创建文件夹解决了接收参数的问题后,创建文件夹,通过接收nam来创建对应的文件夹,可以使用fs模块的mkdir方法来创建文件夹像这样varfs=require('fs')fs.mkdir(path,function(err){if(err)returnconsole.log(err)//-4075文件已经存在console.log('创建文件成功')})创建文件创建文件可以使用fs模块的writeFile方法,该方法会在文件不存在时创建一个新文件,(接收三个参数:写入路径,写入内容,回调)之类的this//fs.mkdir方法是异步的varmsg="console.log('hellojanmi')";fs.mkdir(path,function(err){if(err)returnconsole.log(err)fs.writeFile(page.js,味精,功能(呃r){if(err)console.log(err)cosnoe.log('创建page.js成功')})fs.writeFile(page.less,'',function(err){if(err)console.log(err)cosnoe.log('创建页面.less成功')})fs.writeFile(page.html,'',function(err){if(err)console.log(err)cosnoe.log('创建页面.html成功')})})由于项目开发使用的是复制模板文件,我们有自己的一套模板,使用writeFile写的内容会破坏代码的格式,所以使用fs的复制-extra模块复制文件内容的方法像这样npmifs-extra--savevarfsExtra=require('fs-extra')fsExtra.copy(template.html,page.html,function(err){if(err)returnerrconsole.log('Copytemplate.htmlsuccess')})finalresult###参考与读后阮一峰Node.js命令行程序开发教程Node.js中文网