wx2swan
Version:
微信小程序 转换 百度小程序
101 lines (86 loc) • 3.39 kB
JavaScript
;
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @file wxml convert swan
* @author yican
*/
var path = require('path');
var co = require('co');
var chalk = require('chalk');
var json = require('./src/config');
var api = require('./src/api');
var view = require('./src/view');
var css = require('./src/css');
var utils = require('./src/util/index');
var log = require('./src/util/log');
module.exports = function wxmp2swan(pathObj, cb) {
// 指定转换目录
pathObj.dist = pathObj.dist || getDefaultDist(pathObj.src);
var defultLog = pathObj.dist || pathObj.src;
// dist为文件路径时默认日志目录为此文件目录
if (!utils.isDirectory(defultLog)) {
defultLog = path.dirname(defultLog);
}
pathObj.log = pathObj.log || defultLog;
pathObj.type = pathObj.type || 'wxmp2swan';
var context = (0, _extends3.default)({}, pathObj, {
logs: [],
// 可以放一些全局共享的数据
data: {
// 重命名组件数据存储
// renamedComponents: {file: {[oldName]: newName}}
//
}
});
console.log(chalk.yellow('📦 Transforming workspace files...'));
co( /*#__PURE__*/_regenerator2.default.mark(function _callee() {
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return utils.copyProject(pathObj.src, pathObj.dist);
case 2:
_context.next = 4;
return json.transformConfig(context);
case 4:
_context.next = 6;
return api.transformApi(context);
case 6:
_context.next = 8;
return view.transformView(context);
case 8:
_context.next = 10;
return css.transformCss(context);
case 10:
_context.next = 12;
return utils.createWx2swaninfo(pathObj.dist);
case 12:
case 'end':
return _context.stop();
}
}
}, _callee, this);
})).then(function () {
log.saveLog(pathObj.log);
// utils.saveLog(`${pathObj.log}/log.json`, JSON.stringify(context.logs, null, 4));
cb && cb(null);
console.log(chalk.green('🎉 Ok, transform done, check transform log in ') + chalk.blue.underline.bold('log.json'));
}).catch(function (e) {
cb && cb(e);
console.log(chalk.red('🚀 run error: ', e));
});
};
function getDefaultDist(dist) {
var res = '';
if (utils.isDirectory(dist)) {
res = path.join(path.dirname(dist), path.basename(dist) + '_swan');
} else {
res = path.join(path.dirname(dist) + '_swan', path.basename(dist));
}
return res;
}