mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-11 13:56:15 -08:00
完成dev脚本
This commit is contained in:
1 parent
c2bbe15e79
commit
cc2027832e
7 files changed
+118
-12
No files matched your search
@@ -12,8 +12,7 @@ const svgo = require('rollup-plugin-svgo');
|
||||
const { uglify } = require('rollup-plugin-uglify');
|
||||
const copyAfterBuild = require('./copyAfterBuild');
|
||||
|
||||
function creatRollupConfig(target) {
|
||||
const projectPath = path.join(process.cwd(), 'packages', target);
|
||||
module.exports = function creatRollupConfig(projectPath) {
|
||||
const packageJson = JSON.parse(fs.readFileSync(path.join(projectPath, 'package.json'), 'utf-8'));
|
||||
const { version, homepage, name } = packageJson;
|
||||
const isProd = process.env.NODE_ENV === 'production';
|
||||
@@ -67,12 +66,11 @@ function creatRollupConfig(target) {
|
||||
preamble: banner,
|
||||
},
|
||||
}),
|
||||
isProd && copyAfterBuild({
|
||||
from: path.join(projectPath, 'dist/*'),
|
||||
to: path.join(process.cwd(), 'docs/compiled'),
|
||||
}),
|
||||
isProd &&
|
||||
copyAfterBuild({
|
||||
from: path.join(projectPath, 'dist/*'),
|
||||
to: path.join(process.cwd(), 'docs/compiled'),
|
||||
}),
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = creatRollupConfig(process.env.TARGET);
|
||||
};
|
||||
@@ -0,0 +1,51 @@
|
||||
const inquirer = require('inquirer');
|
||||
const rollup = require('rollup');
|
||||
const logger = require('./logger');
|
||||
const projects = require('./getProjects')();
|
||||
const creatRollupConfig = require('./creatRollupConfig');
|
||||
|
||||
function develop(projectPath) {
|
||||
const config = creatRollupConfig(projectPath);
|
||||
const watcher = rollup.watch(config);
|
||||
watcher.on('event', event => {
|
||||
switch (event.code) {
|
||||
case 'START':
|
||||
logger.log('checking rollup version...');
|
||||
break;
|
||||
case 'BUNDLE_START':
|
||||
logger.log(`bundling ${config.output.file}...`);
|
||||
break;
|
||||
case 'BUNDLE_END':
|
||||
logger.success(`${config.output.file} bundled in ${event.duration}ms.`);
|
||||
logger.success('Watching for changes...');
|
||||
break;
|
||||
case 'END':
|
||||
logger.success('finished building all bundles');
|
||||
break;
|
||||
case 'ERROR':
|
||||
logger.fatal(`error: ${event.error}`);
|
||||
break;
|
||||
case 'FATAL':
|
||||
logger.fatal(`fatal: ${event.error}`);
|
||||
break;
|
||||
default:
|
||||
logger.warn(`unknown event: ${event.code}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
inquirer
|
||||
.prompt([
|
||||
{
|
||||
type: 'list',
|
||||
message: 'Which project do you want to develop?',
|
||||
name: 'project',
|
||||
choices: Object.keys(projects),
|
||||
},
|
||||
])
|
||||
.then(answers => {
|
||||
develop(projects[answers.project]);
|
||||
})
|
||||
.catch(err => {
|
||||
logger.fatal(err);
|
||||
});
|
||||
@@ -0,0 +1,11 @@
|
||||
const path = require('path');
|
||||
const glob = require('glob');
|
||||
|
||||
module.exports = function getProjects() {
|
||||
const projects = {};
|
||||
glob.sync(path.join(process.cwd(), 'packages/*')).forEach(item => {
|
||||
const name = item.split(path.sep).pop();
|
||||
projects[name] = item;
|
||||
});
|
||||
return projects;
|
||||
};
|
||||
@@ -0,0 +1,27 @@
|
||||
const chalk = require('chalk');
|
||||
const { format } = require('util');
|
||||
|
||||
const prefix = 'artplayer-cli';
|
||||
const sep = chalk.gray('·');
|
||||
|
||||
exports.log = function log(...args) {
|
||||
const msg = format.apply(format, args);
|
||||
console.log(chalk.white(prefix), sep, msg);
|
||||
};
|
||||
|
||||
exports.fatal = function fatal(...args) {
|
||||
if (args[0] instanceof Error) args[0] = args[0].message.trim();
|
||||
const msg = format.apply(format, args);
|
||||
console.error(chalk.red(prefix), sep, msg);
|
||||
process.exit(1);
|
||||
};
|
||||
|
||||
exports.success = function success(...args) {
|
||||
const msg = format.apply(format, args);
|
||||
console.log(chalk.green(prefix), sep, msg);
|
||||
};
|
||||
|
||||
exports.warn = function warn(...args) {
|
||||
const msg = format.apply(format, args);
|
||||
console.log(chalk.yellow(prefix), sep, msg);
|
||||
};
|
||||
Reference in new issue
Block a user