UNPKG

2.06 kBPlain TextView Raw
1#!/usr/bin/env node
2
3'use strict';
4
5var fs = require('fs');
6var path = require('path');
7var program = require('commander');
8var spawn = require('cross-spawn');
9var updateNotifier = require('update-notifier');
10var color = require('@fle/color');
11
12var {
13 pkgName,
14 pkgVersion,
15 fleHomePath,
16 needVerifyCommands
17} = require('../lib/consts');
18var { checkProject } = require('../lib/utils');
19
20// 检查更新
21updateNotifier({
22 pkg: {
23 name: pkgName,
24 version: pkgVersion
25 },
26 updateCheckInterval: 86400000 // 每天检查一次
27}).notify({
28 isGlobal: true
29});
30
31// 第一次启动需要安装编译需要的依赖
32var buildPkgPath = path.join(fleHomePath, 'package.json');
33if (!fs.existsSync(buildPkgPath) || require(buildPkgPath)['fle-version'] !== pkgVersion) {
34 require('../lib/install');
35 require('../lib/fix/babel-cli');
36}
37
38program
39 .version(pkgVersion, '-v, --version')
40 .usage('<command> [options]')
41 .on('--help', () => {
42 console.log();
43 console.log(' Commands:');
44 console.log();
45 console.log(' init 创建项目工程或页面');
46 console.log(' dev 启动本地开发调试');
47 console.log(' build 编译生产环境代码');
48 console.log(' lib 编译js库工程');
49 console.log(' upload 上传图片或文件');
50 console.log(' sprite 将多张图片合成雪碧图');
51 console.log();
52 })
53 .parse(process.argv);
54
55var subcmd = program.args[0];
56var aliases = {
57 "i": "init",
58 "d": "dev",
59 "b": "build",
60 "l": "lib",
61 "u": "upload"
62};
63
64if (aliases[subcmd]) {
65 subcmd = aliases[subcmd];
66}
67
68if (!subcmd || subcmd === 'help') {
69 program.help();
70} else {
71 if (needVerifyCommands.indexOf(subcmd) !== -1) {
72 checkProject();
73 }
74
75 var file = path.join(__dirname, `../lib/commands/${subcmd}.js`);
76
77 fs.stat(file, (err) => {
78 if (err) {
79 console.log(`\n不存在此命令:${color.cyan(subcmd)}\n`);
80 process.exit(1);
81 }
82
83 spawn('node', [file].concat(process.argv.slice(3)), { stdio: 'inherit' });
84 });
85}