1 | #!/usr/bin/env node
|
2 | 'use strict'
|
3 |
|
4 | const chalk = require('chalk')
|
5 | const semver = require('semver')
|
6 |
|
7 |
|
8 | const argv = require('../config/argv')
|
9 | const paths = require('../config/paths')
|
10 | const requiredVersion = require('../package.json').engines.node
|
11 | const currentNodeVersion = process.versions.node
|
12 |
|
13 |
|
14 | if (!semver.satisfies(currentNodeVersion, requiredVersion)) {
|
15 | console.log(
|
16 | chalk.red(
|
17 | `You are running Node ${currentNodeVersion}.\n` +
|
18 | `but @mara/x requires Node ${requiredVersion}.\n` +
|
19 | 'Please update your version of Node.\n'
|
20 | )
|
21 | )
|
22 | process.exit(1)
|
23 | }
|
24 |
|
25 | const cmdMap = {
|
26 | dev: 'serve',
|
27 | test: 'test',
|
28 | build: 'build',
|
29 | lib: 'buildLib',
|
30 | dll: 'dll',
|
31 | hook: 'hook'
|
32 | }
|
33 | const cmd = cmdMap[argv._[0]]
|
34 |
|
35 | if (argv.v) {
|
36 | console.log(require(paths.maraxPackageJson).version)
|
37 | } else if (!cmd) {
|
38 |
|
39 |
|
40 | const rawArgv = process.argv.slice(2)
|
41 |
|
42 | console.log('\nUnknown script "' + rawArgv + '".')
|
43 | console.log('Perhaps you need to update @mara/x?')
|
44 | console.log('See: https://github.com/SinaMFE/mara/blob/master/README.md')
|
45 | process.exit(0)
|
46 | } else {
|
47 | require(`../scripts/${cmd}`)(argv)
|
48 | }
|