uniapp使用命令创建页面
package.js下创建命令
"scripts": {
"add": "node ./auto/addPage.ts"
}
package.js同级目录创建auto/addPage.ts
addPage.ts代码如下
const fs = require('fs')
const path = require('path')
const targetPath = process.argv[2];// 要创建的目录地址和文件名
const args = targetPath.split('/');
const targetParent = args.slice(-2, -1)[0]; //创建路径的父文件夹
const targetName = args.slice(-1)[0]; //创建的文件名
const targetFileName = process.argv[3]; // 要创建的文件中文名
const root = process.argv[4]; // 要创建的文件中文名
let targetFullParentPath, targetFullPath;
if (root) {
targetFullParentPath = `./src/${root}/` + targetParent; //完整的父文件夹路径
targetFullPath = `./src/${root}/` + targetPath + '.nvue'; //完整的文件路径
} else {
targetFullParentPath = './src/pages/' + targetParent; //完整的父文件夹路径
targetFullPath = './src/pages/' + targetPath + '.nvue'; //完整的文件路径
}
/*检测指定目录下指定文件夹/文件是否存在*/
let isExist = function (path) {
return fs.existsSync(path);
}
const newPages = {
name: targetName,
title: targetFileName,
path: targetFullParentPath
}
!user_pages.includes(i.name));
// 添加新路由
function addPages(pages) {
if (isExist(targetFullParentPath) && isExist(targetFullPath)) { //存在文件夹
console.log("已存在文件夹" + targetParent+ "且存在文件" + targetName)
} else {
const { name, title, path } = pages;
const dirPath = `${path}`;
if (!isExist(targetFullParentPath)) {
fs.mkdirSync(dirPath);
}
const filePath = `${dirPath}/${name}.nvue`;
const createStream = fs.createWriteStream(filePath);
const template = `<script setup lang="ts" ></script>
<template>
<view>${title}</view>
</template>
<style scoped></style>
`;
createStream.write(template);
createStream.end();
console.log('\x1B[34m', `pages ${name} created successfully.`);
}
}
addPages(newPages);
至此就可以愉快的使用命令创建页面啦