在js中引用@vue/cli-service启动开发服务

127 阅读1分钟

如题

const Service = require("@vue/cli-service");
const {semver, error} = require('@vue/cli-shared-utils');
const service = new Service(process.env.VUE_CLI_CONTEXT || process.cwd());
const exec = require('child_process').exec;

const rawArgv = process.argv.slice(2)
const args = require('minimist')(rawArgv, {
    boolean: [
        // build
        'modern',
        'report',
        'report-json',
        'inline-vue',
        'watch',
        // serve
        'open',
        'copy',
        'https',
        // inspect
        'verbose'
    ]
})

const command = args._[0] || "serve";
setTimeout(__=>{
    return new Promise((resolve, reject) => {
        //启动之前执行一些异步操作
        const proc = exec('npm run build', function(err,stdout,stderr){
            if(err) {
                reject('npm run build:'+stderr);
            } else {
                console.log(stdout);
                resolve();
            }
        });
         proc.stdout.on('data', console.log);
         proc.stderr.on('data',console.error);
    })
        .then(service.run(command, args, rawArgv))
        .catch(err => {
            error(err)
            process.exit(1);
        })
    ;
})