datamax-cli
Version:
datamax plugin cli
76 lines (66 loc) • 2.19 kB
JavaScript
const fs = require("fs");
const fsextra = require("fs-extra");
var path = require("path");
const util = require("./util/util.js");
const shelljs = require("shelljs");
const chalk = require("chalk");
shelljs.config.verbose = true;
shelljs.config.silent = true;
//当前 脚手架的路径
var datamaxUrl = shelljs.exec("npm root -g").stdout||shelljs.exec("pwd").stdout;
datamaxUrl = datamaxUrl.slice(0, datamaxUrl.length - 1);
// datamaxUrl = "/Users/lun/code";
module.exports = function buildProject(config, resolve) {
const builder = require("./util/builder");
config.root = process.cwd();
const appvue = require("./material/build-example-APPvue")(config);
const exapmpleMain = require("./material/build-example-main")(config);
const install = require("./material/build-install")(config);
const packagejson = require("./material/build-packagejson")(config);
const buildPublic = require("./material/build-public")(config);
const rollconfig = require("./material/build-rollconfig")(config);
const vueconfig = require("./material/build-vueconfig")(config);
const pluginVue = require("./material/build-vue")(config);
let buildList = [
appvue,
exapmpleMain,
install,
packagejson,
buildPublic,
rollconfig,
vueconfig,
pluginVue,
];
buildList.forEach((buildItem) => {
builder(buildItem);
});
let editorUrl = (datamaxUrl||".") + "/datamax-cli/assets/editor";
var fstat;
try {
fstat = fs.statSync(editorUrl);
} catch (e) {
console.log(chalk.red(`找不到脚手架的编辑器!`));
return process.exit();
}
//创建 dist 文件夹
//util.mkdir([config.root, config.pluginName, "example", "editor"]);
let disturl = [config.root, config.pluginName, "example", "editor"].reduce(
(url, item) => {
return url + "/" + item;
},
""
);
//去掉第一个/
disturl = disturl.slice(1);
//创建 dist 文件夹
util.mkdir([config.root, "dist"]);
console.log("editorurl:", editorUrl, "disturl:", disturl);
fsextra.copy(editorUrl, disturl, function (err) {
if (err) {
console.error(err);
} else {
console.log("复制 editor success!");
}
resolve();
});
};