antmove-vscode-plugin
Version:
小程序跨平台开发统一解决方案
73 lines (65 loc) • 1.78 kB
text/typescript
import * as vscode from 'vscode';
import { Interface } from 'readline';
const fs = require("fs-extra");
const path = require("path");
const App = require('antmove')();
const WechatPlugin = require('@antmove/wx-alipay');
interface AntmoveOptions {
input: string;
output: string;
}
function transfrom (opts: AntmoveOptions) {
App.use(
WechatPlugin,
{
entry: opts.input,
dist: opts.output,
env: 'prod',
remote: false
})
.start();
}
export function activate(context: vscode.ExtensionContext) {
let disposable = vscode.commands.registerCommand('extension.antmove', () => {
let i = 0;
vscode.window.showWorkspaceFolderPick()
.then (function (res: any) {
if (!res) {
vscode.window.showWarningMessage('请选择一个可转换的小程序项目目录。');
} else {
/**
* 转换当前工作区
*/
let dirname = res.uri.fsPath;
let projectName = res.name;
vscode.window.showInformationMessage('请选择一个空的目录地址作为转换后的输出目录。');
vscode.window.showOpenDialog({
canSelectFiles: false,
canSelectFolders: true,
canSelectMany: false
})
.then(function (res) {
if (!res) {
vscode.window.showErrorMessage('请选择转换后生成目录地址。');
return false;
}
let outputPath = res[0].path;
try {
transfrom({
input: dirname,
output: path.join(outputPath, projectName)
});
vscode.window.showInformationMessage('欢迎使用蚂蚁搬家工具,您的项目已成功完成转换。');
} catch (error) {
vscode.window.showErrorMessage(error);
}
});
}
}, function (err) {
if (err) {
console.error(err);
}
});
});
context.subscriptions.push(disposable);
}