#!/usr/bin/env node
const path = require('path');
const fs = require('fs');
const { execSync } = require('child_process');
const { Command } = require('commander');
require('colors');
const Renderers = ['@skyline', '@webview', '@S', '@W'];
const commander = new Command();
* 这里使用argument而不是option是怕npm吃掉参数
* 使用--前缀会被npm吃掉,所以这里用了@
*/
commander
.argument('[renderer]', 'set miniprogram renderer', '@skyline')
.action(function (renderer) {
if (renderer.startsWith('@') && !Renderers.includes(renderer)) {
return void console.log(
'run dev'.white,
'ERR!'.red,
'invalid renderer mode'.white,
`\nstandard arguments: ${Renderers.join(' ')}`.grey
);
}
const template =
renderer === '@skyline' || renderer === '@S'
? path.join(process.cwd(), '/tmpls/mnp.skyline.app.tpl.json')
: path.join(process.cwd(), '/tmpls/mnp.webview.app.tpl.json');
fs.writeFileSync(path.join(process.cwd(), '/dev/app.json'), fs.readFileSync(template));
execSync('cross-env NODE_ENV=development gulp dev', { stdio: 'inherit' });
})
.parse(process.argv);