当前位置:网站首页 > Node.js开发 > 正文

使用node自动化创建文件及其模板

一,概述

在开发一个组件之前,需要创建组件目录、创建组件文件、初始化组件模板等一系列繁琐又重复的工作,这些其实都可以使用脚本自动化实现。

二,实现

可以在 scripts 目录下写一个 node 脚本实现以上过程,并在 package.json 中添加 scripts 脚本加入到 npm 工作流中:

 "scripts": { 
    "create": "node ./script/new-file.js" }, 

然后编写模板代码:

<template> <div>模板</div> </template> <script> export default { 
    data() { 
    return { 
   }; }, created() { 
   }, computed: { 
   }, methods: { 
   }, }; </script> <style lang="scss" scoped></style> 

自动创建文件的脚本:

const path = require("path"); const fs = require("fs"); const fileSave = require("file-save"); const uppercamelcase = require("uppercamelcase"); const inquirer = require("inquirer"); //组件放置在src/components下,组件名文件夹加一个index.vue文件 //组件的命名规范为大驼峰:MyTest //页面文件放在 src/pages下,页面名文件夹下一个components和index.vue文件 //页面的命名为两个字母短横线连接:my-test const type = new Map([ ["新增组件", "component"], ["新增页面", "page"], ]); // 递归创建目录 同步方法 const mkdirsSync = function (dirname) { 
    if (fs.existsSync(dirname)) { 
    return true; } else { 
    if (mkdirsSync(path.dirname(dirname))) { 
    fs.mkdirSync(dirname); return true; } } }; const build = async () => { 
    const res1 = await inquirer.prompt([ { 
    type: "list", name: "type", message: "请选择你要新建的文件类型?", choices: ["新增组件", "新增页面"], }, ]); const createType = type.get(res1.type); fs.readFile( path.resolve(__dirname, "./template/index.vue"), "utf8", async function (err, data) { 
    if (createType === "component") { 
    //新建组件 const res2 = await inquirer.prompt([ { 
    type: "input", message: "请输入组件名称:", name: "componentName", }, ]); const ComponentName = uppercamelcase(res2.componentName); const componentPath = path.resolve( __dirname, "../src/components", ComponentName ); const files = [{ 
    fileName: "index.vue", content: data, type: "file" }]; files.forEach((file) => { 
    fileSave(path.join(componentPath, file.fileName)) .write(file.content, "utf8") .end("\n"); }); } else { 
    //新建页面 const res3 = await inquirer.prompt([ { 
    type: "input", message: "请输入页面名称:", name: "pageName", }, ]); const componentPath = path.resolve( __dirname, "../src/pages", res3.pageName ); const files = [ { 
    fileName: "componcent", type: "fileBox", }, { 
    fileName: "index.vue", content: data, type: "file" }, ]; files.forEach((file) => { 
    //新增文件夹 if (file.type === "fileBox") { 
    mkdirsSync(path.join(componentPath, file.fileName)); } else { 
    //新增文件 fileSave(path.join(componentPath, file.fileName)) .write(file.content, "utf8") .end("\n"); } }); } } ); }; build(); 

接下来只要npm run create,输入要创建的文件名字,就可以创建基本的具备模板的新文件了。

到此这篇使用node自动化创建文件及其模板的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • node-sass安装不上的问题2024-11-30 09:09:06
  • Node学习(四)-npm概述——使用npm安装第三方模块之全局安装、本地局部安装2024-11-30 09:09:06
  • Node学习(五)01-express框架——使用express搭建web服务器 & 启动命令之node或nodemon+空格+文件相对路径 __dirname指当前文件所在文件夹的绝对路径2024-11-30 09:09:06
  • Node学习(五)021-处理静态资源——中间件是express最大特色-app.use() & 有三个基本参数req、res、next & 自定义中间件处理静态资源文件-sendFile异步读取文件2024-11-30 09:09:06
  • Node学习(八)01-Node中的模块化——一个js文件就是一个模块& js中声明的属性和方法挂载global对象下则是全局作用域&module.exports导出属性和方法&require导入模块2024-11-30 09:09:06
  • mac上nvm切换node版本无效2024-11-30 09:09:06
  • 使用git commit时‘“node“‘ 不是内部或外部命令,也不是可运行的程序2024-11-30 09:09:06
  • docker基础(四)-制作镜像部署node后端项目2024-11-30 09:09:06
  • 安装node(安装node.js)2024-11-30 09:09:06
  • 安装node js(安装nodejs教程)2024-11-30 09:09:06
  • 全屏图片