1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _regenerator = require('babel-runtime/regenerator');
|
8 |
|
9 | var _regenerator2 = _interopRequireDefault(_regenerator);
|
10 |
|
11 | var _stringify = require('babel-runtime/core-js/json/stringify');
|
12 |
|
13 | var _stringify2 = _interopRequireDefault(_stringify);
|
14 |
|
15 | var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
|
16 |
|
17 | var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
|
18 |
|
19 | var _fsExtra = require('fs-extra');
|
20 |
|
21 | var _fsExtra2 = _interopRequireDefault(_fsExtra);
|
22 |
|
23 | var _colors = require('colors');
|
24 |
|
25 | var _colors2 = _interopRequireDefault(_colors);
|
26 |
|
27 | var _tools = require('./../utils/tools');
|
28 |
|
29 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
30 |
|
31 | var exec = require('child_process').execSync;
|
32 | var ora = require('ora');
|
33 | var getGitUser = require('./../utils/git-user');
|
34 | var spinner = ora('正在备份工作区代码');
|
35 |
|
36 | exports.default = (0, _asyncToGenerator3.default)( _regenerator2.default.mark(function _callee() {
|
37 | var copyName, sysProjectPath, localPackage, localDendencies, localDevDendencies, userPackage, userDendencies, userDevDendencies, cache, key, localVersion, _userVserion, _key, _localVersion, userVserion, updatePackageFile, updateBuildFile, useBuildFile, updateGulpFile, useGulpfile, updateReadme, useReadme, updateEslintignore, useEslintignore, updateEslintrc, useEslintrc;
|
38 |
|
39 | return _regenerator2.default.wrap(function _callee$(_context) {
|
40 | while (1) {
|
41 | switch (_context.prev = _context.next) {
|
42 | case 0:
|
43 | spinner.start();
|
44 |
|
45 | copyName = 'copy_' + +new Date();
|
46 | _context.next = 4;
|
47 | return _fsExtra2.default.copy(_tools.PROJECT_PATH + '/', _tools.CLIENT_PATH + '/' + copyName);
|
48 |
|
49 | case 4:
|
50 | _context.next = 6;
|
51 | return _fsExtra2.default.copy(_tools.CLIENT_PATH + '/' + copyName, _tools.PROJECT_PATH + '/' + copyName);
|
52 |
|
53 | case 6:
|
54 | spinner.text = '备份完毕';
|
55 | spinner.succeed();
|
56 | (0, _tools.deleteFolder)(_tools.CLIENT_PATH + '/' + copyName);
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 | exec('cd ' + _tools.CLIENT_PATH + '/project && git clone -b vue-init ssh://' + getGitUser().name + '@smartgit:29418/mobileInternet/core/FED/public ');
|
63 | sysProjectPath = _tools.CLIENT_PATH + '/project/public/vue-init/src/project';
|
64 |
|
65 |
|
66 |
|
67 | localPackage = _fsExtra2.default.readJsonSync(sysProjectPath + '/package.json');
|
68 | localDendencies = localPackage.dependencies;
|
69 | localDevDendencies = localPackage.devDependencies;
|
70 |
|
71 |
|
72 |
|
73 | userPackage = _fsExtra2.default.readJsonSync(_tools.PROJECT_PATH + '/package.json');
|
74 | userDendencies = userPackage.dependencies;
|
75 | userDevDendencies = userPackage.devDependencies;
|
76 | cache = {
|
77 | dependencies: {},
|
78 | devDependencies: {}
|
79 | };
|
80 |
|
81 |
|
82 | for (key in localDendencies) {
|
83 | localVersion = localDendencies[key];
|
84 |
|
85 | if (userDendencies.hasOwnProperty(key)) {
|
86 | _userVserion = userDendencies[key];
|
87 |
|
88 |
|
89 | if (localVersion > _userVserion) {
|
90 | cache.dependencies[key] = _userVserion + '=>' + localVersion;
|
91 | userDendencies[key] = localVersion;
|
92 | }
|
93 | } else {
|
94 | cache.dependencies[key] = ' new =>' + localVersion;
|
95 | userDendencies[key] = localVersion;
|
96 | }
|
97 | }
|
98 |
|
99 | for (_key in localDevDendencies) {
|
100 | _localVersion = localDevDendencies[_key];
|
101 |
|
102 | if (userDevDendencies.hasOwnProperty(_key)) {
|
103 | userVserion = userDevDendencies[_key];
|
104 |
|
105 |
|
106 | if (_localVersion > userVserion) {
|
107 | cache.devDependencies[_key] = userVserion + '=>' + _localVersion;
|
108 | userDevDendencies[_key] = _localVersion;
|
109 | }
|
110 | } else {
|
111 | cache.devDependencies[_key] = ' new =>' + _localVersion;
|
112 | userDevDendencies[_key] = _localVersion;
|
113 | }
|
114 | }
|
115 |
|
116 |
|
117 | userPackage.scripts = localPackage.scripts;
|
118 |
|
119 | updatePackageFile = _tools.CLIENT_PATH + '/template/update-package.json';
|
120 |
|
121 | _fsExtra2.default.writeJsonSync(updatePackageFile, userPackage, {
|
122 | spaces: ' '
|
123 | });
|
124 |
|
125 |
|
126 | _context.next = 25;
|
127 | return _fsExtra2.default.copy(updatePackageFile, _tools.PROJECT_PATH + '/package.json', { overwrite: true }, function (err) {
|
128 | if (err) return console.error(err);
|
129 | console.log('本次package.json的依赖的更新:');
|
130 | console.log((0, _stringify2.default)(cache, null, ' '));
|
131 | });
|
132 |
|
133 | case 25:
|
134 |
|
135 |
|
136 | updateBuildFile = sysProjectPath + '/build';
|
137 | useBuildFile = _tools.PROJECT_PATH + '/build';
|
138 | _context.next = 29;
|
139 | return _fsExtra2.default.remove(useBuildFile);
|
140 |
|
141 | case 29:
|
142 | _context.next = 31;
|
143 | return _fsExtra2.default.copy(updateBuildFile, useBuildFile).then(function () {
|
144 | console.log(useBuildFile + ' \u5DF2\u66F4\u65B0');
|
145 | });
|
146 |
|
147 | case 31:
|
148 |
|
149 |
|
150 | updateGulpFile = sysProjectPath + '/gulpfile.js';
|
151 | useGulpfile = _tools.PROJECT_PATH + '/gulpfile.js';
|
152 | _context.next = 35;
|
153 | return _fsExtra2.default.copy(updateGulpFile, useGulpfile).then(function () {
|
154 | console.log(useGulpfile + ' \u5DF2\u66F4\u65B0');
|
155 | });
|
156 |
|
157 | case 35:
|
158 |
|
159 |
|
160 | updateReadme = sysProjectPath + '/readme.md';
|
161 | useReadme = _tools.PROJECT_PATH + '/readme.md';
|
162 | _context.next = 39;
|
163 | return _fsExtra2.default.copy(updateReadme, useReadme).then(function () {
|
164 | console.log(useReadme + ' \u5DF2\u66F4\u65B0');
|
165 | });
|
166 |
|
167 | case 39:
|
168 |
|
169 |
|
170 | updateEslintignore = sysProjectPath + '/.eslintignore';
|
171 | useEslintignore = _tools.PROJECT_PATH + '/.eslintignore';
|
172 | _context.next = 43;
|
173 | return _fsExtra2.default.copy(updateEslintignore, useEslintignore).then(function () {
|
174 | console.log(useEslintignore + ' \u5DF2\u66F4\u65B0');
|
175 | });
|
176 |
|
177 | case 43:
|
178 |
|
179 |
|
180 | updateEslintrc = sysProjectPath + '/.eslintrc.js';
|
181 | useEslintrc = _tools.PROJECT_PATH + '/.eslintrc.js';
|
182 | _context.next = 47;
|
183 | return _fsExtra2.default.copy(updateEslintrc, useEslintrc).then(function () {
|
184 | console.log(useEslintrc + ' \u5DF2\u66F4\u65B0');
|
185 | });
|
186 |
|
187 | case 47:
|
188 | _context.next = 49;
|
189 | return _fsExtra2.default.remove(_tools.PROJECT_PATH + '/node_modules');
|
190 |
|
191 | case 49:
|
192 |
|
193 | console.log(_colors2.default.magenta('Project updated successfully !\nPlease run `npm i` '));
|
194 |
|
195 |
|
196 | _fsExtra2.default.remove(_tools.CLIENT_PATH + '/project/public');
|
197 |
|
198 | case 51:
|
199 | case 'end':
|
200 | return _context.stop();
|
201 | }
|
202 | }
|
203 | }, _callee, undefined);
|
204 | }));
|
205 | module.exports = exports['default']; |
\ | No newline at end of file |