You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
3.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
function _react() {
const data = _interopRequireDefault(require("react"));
_react = function _react() {
return data;
};
return data;
}
function _mkdirp() {
const data = _interopRequireDefault(require("mkdirp"));
_mkdirp = function _mkdirp() {
return data;
};
return data;
}
function _os() {
const data = require("os");
_os = function _os() {
return data;
};
return data;
}
function _resolveFrom() {
const data = _interopRequireDefault(require("resolve-from"));
_resolveFrom = function _resolveFrom() {
return data;
};
return data;
}
function _path() {
const data = require("path");
_path = function _path() {
return data;
};
return data;
}
function _fs() {
const data = require("fs");
_fs = function _fs() {
return data;
};
return data;
}
var _npmClient = require("./npmClient");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
function _default(_x) {
return _ref.apply(this, arguments);
}
function _ref() {
_ref = _asyncToGenerator(function* (opts) {
const _opts$npmClient = opts.npmClient,
npmClient = _opts$npmClient === void 0 ? 'npm' : _opts$npmClient,
_opts$packageName = opts.packageName,
packageName = _opts$packageName === void 0 ? 'create-umi' : _opts$packageName,
onData = opts.onData; // 创建目录
const baseDir = opts.baseDir || (0, _path().join)((0, _os().homedir)(), `.umi/creator/${packageName}`);
_mkdirp().default.sync(baseDir); // 创建 package.json
const pkgPath = (0, _path().join)(baseDir, 'package.json');
if ((0, _fs().existsSync)(pkgPath)) {
// 更新
// 更新时使用安装时用的 npmClient否则会导致不可预知的问题
yield (0, _npmClient.executeCommand)(require(pkgPath).npmClient, // eslint-disable-line
['update', '--registry=https://registry.npm.taobao.org'], baseDir, {
unsafePerm: true,
onData
});
} else {
// 写 package.json
(0, _fs().writeFileSync)(pkgPath, JSON.stringify({
npmClient,
dependencies: {
[packageName]: '*'
}
}, null, 2), 'utf-8'); // 安装依赖
yield (0, _npmClient.executeCommand)(npmClient, ['install', '--registry=https://registry.npm.taobao.org'], baseDir, {
unsafePerm: true,
onData
});
}
return (0, _resolveFrom().default)(baseDir, packageName);
});
return _ref.apply(this, arguments);
}