#!/usr/bin/env node const fs = require('fs') const path = require('path') const slash = require('slash') const chalk = require('chalk') const semver = require('semver') const { error } = require('@vue/cli-shared-utils') const requiredVersion = require('../package.json').engines.node if (!semver.satisfies(process.version, requiredVersion)) { error( `You are using Node ${process.version}, but this version of vue-cli ` + `requires Node ${requiredVersion}.\nPlease upgrade your Node version.` ) process.exit(1) } // enter debug mode when creating test repo if (slash(process.cwd()).indexOf('/packages/test') > 0 && fs.existsSync(path.resolve(process.cwd(), '../@vue'))) { process.env.VUE_CLI_DEBUG = true } const program = require('commander') const loadCommand = require('../lib/util/loadCommand') program .version(require('../package').version) .usage(' [options]') program .command('create ') .description('create a new project powered by vue-cli-service') .option('-s, --saved', 'Skip prompts and use saved config') .option('-d, --default', 'Skip prompts and use default config') .option('-c, --config ', 'Skip prompts and use inline JSON string as config') .option('-r, --registry ', 'Use specified NPM registry when installing dependencies') .option('-m, --package-manager ', 'Use specified NPM client when installing dependencies') .option('-f, --force', 'Overwrite target directory if it exists') .action((name, cmd) => { require('../lib/create')(name, cleanArgs(cmd)) }) program .command('serve [entry]') .description('serve a .js or vue file in development mode with zero config') .option('-o, --open', 'Open browser') .action((entry, cmd) => { loadCommand('serve', '@vue/cli-service-global').serve(entry, cleanArgs(cmd)) }) program .command('build [entry]') .description('build a .js or .vue file in production mode with zero config') .action((entry, cmd) => { loadCommand('build', '@vue/cli-service-global').build(entry, cleanArgs(cmd)) }) program .command('init