"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); }