uni-easy-pages
Version:
uni-app开发环境辅助生产工具
108 lines (96 loc) • 3.3 kB
JavaScript
const fs = require('fs');
const path = require('path');
module.exports = class {
constructor() {
}
static init() {
return new this();
}
start() {
console.log('开始目录初始化...');
this.createDir();
this.createFile();
console.log('目录初始化完成...');
}
createDir() {
let watchDirs = [
path.join(path.resolve(), "pages"),
path.join(path.resolve(), "config"),
];
watchDirs.forEach((item) => {
if (!fs.existsSync(item)) {
fs.mkdirSync(item);
console.log('创建目录', item);
}
})
}
copyDirectory(src, dest) {
if (!fs.existsSync(src)) {
return false;
}
if (!fs.existsSync(dest)) {
fs.mkdirSync(dest);
}
var dirs = fs.readdirSync(src);
dirs.forEach((item) => {
var item_path = path.join(src, item);
var temp = fs.statSync(item_path);
if (temp.isFile()) { // 是文件
// console.log("Item Is File:" + item);
fs.copyFileSync(item_path, path.join(dest, item));
} else if (temp.isDirectory()) { // 是目录
// console.log("Item Is Directory:" + item);
this.copyDirectory(item_path, path.join(dest, item));
}
});
}
createFile() {
let pagesJsonFilePath = path.join(path.resolve(), 'pages.json');
//------
let condition = path.join(path.resolve(), 'config', 'condition.js');
if (!fs.existsSync(condition)) {
let str = '// 必填:否;描述:启动模式配置;【https://uniapp.dcloud.io/collocation/pages?id=condition】\n' +
'const condition = {};\n' +
'export default condition;';
fs.writeFileSync(condition, str);
console.log('创建文件', condition);
}
//------
let easycom = path.join(path.resolve(), 'config', 'easycom.js');
if (!fs.existsSync(easycom)) {
let str = '// 必填:否;描述:组件自动引入规则;平台兼容:2.5.5+;【https://uniapp.dcloud.io/collocation/pages?id=easycom]\n' +
'const easycom = {};\n' +
'export default easycom;';
fs.writeFileSync(easycom, str);
console.log('创建文件', easycom);
}
//------
let globalStyle = path.join(path.resolve(), 'config', 'globalStyle.js');
if (!fs.existsSync(globalStyle)) {
let str = '// 必填:否;描述:设置默认页面的窗口表现;【https://uniapp.dcloud.io/collocation/pages?id=globalStyle]\n' +
'const globalStyle = {};\n' +
'export default globalStyle;';
fs.writeFileSync(globalStyle, str);
console.log('创建文件', globalStyle);
}
//------
let tabBar = path.join(path.resolve(), 'config', 'tabBar.js');
if (!fs.existsSync(tabBar)) {
let str = '// 必填:否;描述:设置底部 tab 的表现;【https://uniapp.dcloud.io/collocation/pages?id=tabBar]\n' +
'const tabBar = {};\n' +
'export default tabBar;';
fs.writeFileSync(tabBar, str);
console.log('创建文件', tabBar);
}
//------
let extras = path.join(path.resolve(), 'config', 'extras.js');
if (!fs.existsSync(extras)) {
let str = '// 必填:否;描述:其他节点信息配置,如:subPackages、preloadRule和workers等\n' +
'const extras = {};\n' +
'export default extras;';
fs.writeFileSync(extras, str);
console.log('创建文件', extras);
}
//------
}
}