码迷,mamicode.com
首页 > Web开发 > 详细

nodejs生成模板文件

时间:2017-10-19 16:33:45      阅读:403      评论:0      收藏:0      [点我收藏+]

标签:exp   新建文件夹   replace   component   created   程序   create   splice   ready   

  之前为了学习,用vue-cli搭了一个前端架子,但是每次新建组件的时候都需要新建文件夹和.vue文件,感觉很繁琐。本着““懒惰是程序员的第一美德”的宗旨,用node写了一个简单的自动生成组件名字和内容的脚本。

/**
 * node c componentName
 * @componentName {String} 组件名
 */

const fs = require(‘fs‘);
const path = require(‘path‘);

// 获取到组件名
const args = process.argv.splice(2);
const componentName = args[0];

console.log(‘prepare to creat a ‘ + componentName + ‘ component‘);

let root = ‘./src/components/‘;

// 读取模板文件,并修改内容
let template = fs.readFileSync(path.join(__dirname, ‘./template.vue‘), ‘utf8‘);
let content = template.replace(/componentName/g, componentName); // target file content

// 目标文件夹和目标文件的路径
let targetDirPath = path.join(__dirname, root, componentName);
let targetFilePath = path.join(__dirname, root, componentName, componentName + ‘.vue‘);

// mkdirSync
if (!fs.existsSync(targetDirPath)) {
    fs.mkdirSync(targetDirPath);
    console.log(‘The ‘ + targetDirPath + ‘ folder has been created!‘);
}

// writeFile async
if (!fs.existsSync(targetFilePath)) {
    fs.writeFile(targetFilePath, content, (err) => {
        if (err) throw err;
        console.log(‘The ‘ + targetFilePath + ‘ has been created!‘);
    });
} else {
    console.error(‘error!\n‘ + targetFilePath + ‘ has already been existed!‘);
}

 

template.vue的内容如下:

<template>
  <div class="componentName">
    
  </div>
</template>

<script>
export default {
  name: ‘componentName‘,
  data () {
    return {

    }
  }
}
</script>

<style lang="scss" rel="stylesheet/scss">

</style>

 

nodejs生成模板文件

标签:exp   新建文件夹   replace   component   created   程序   create   splice   ready   

原文地址:http://www.cnblogs.com/xiaohaifengke/p/7693185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!