I. Initialization and preparation

A package.json file is generated

Create a directory under the current folder scripts to store the script files generateProects. Js and template.js

Add commands to package.json

"scripts": {    
    "create": "node ./scripts/generateProject"
},
Copy the code

Write a template file

module.exports = { vueTemplate: '<template> <div> </template> <script> export default {data() {return {}}, created(){} methods: {} } </script> <style scoped></style> ` }Copy the code

GenerateProject.js

Const chalk = require('chalk') NPM I chalk const path = require('path') const fs = require('fs') const pathResolve = (... file) => path.resolve(__dirname, ... file) const log = message => console.log(chalk.green(`${message}`)) const successLog = message => console.log(chalk.blue(`${message}`)) const errorLog = error => console.log(chalk.red(`${error}`)) const { vueTemplate } = require('./template.js') // import template file log(' please input file name ') process.stdin.on('data', Async Chunk => {const inputName = String(chunk).trim().tostring () /** * file directory path */ const projectDirectory = pathResolve('.. /src', Const hasprojectDirectory = fs.existssync (projectDirectory) if (hasprojectDirectory) {// Check whether errorLog(' ${inputName} 'project directory exists, Please re-type ')} else {log(' generating file directory ${projectDirectory} ') dotExistDirectoryCreate(pathResolve(projectDirectory)) // Create folder await generateFile(pathResolve(projectDirectory, `${inputName}.vue`), VueTemplate) // Create file successLog(' file generated successfully ')} process.stdin.emit('end')}) process.stdin.on('end', () => {// exit()}) function generateFile(path, Data) {if (fs.existssync (path)) {errorLog(' ${path} file already exists') return} return new Promise((resolve, reject) => { fs.writeFile(path, data, 'utf8', Err => {if (err) {errorLog(err.message) reject(err)} else {resolve(true)}})})} // Create folder function dotExistDirectoryCreate(directory) { return new Promise(resolve => { mkdirs(directory, Function () {resolve()})} callback) { const exists = fs.existsSync(directory) if (exists) { callback() } else { mkdirs(path.dirname(directory), () => { fs.mkdirSync(directory) callback() }) } }Copy the code

Iv. Final results

File directory

File structure

The file content