|
1 | 1 | const path = require('path') |
| 2 | +const childProcess = require('child_process') |
| 3 | +const { execSync } = childProcess |
2 | 4 | const http = require('http'); |
| 5 | +const https = require('https'); |
3 | 6 | // upgrade logger |
4 | 7 | function upgradeLogger () { |
5 | 8 | const currPkg = require('../package.json') |
6 | 9 | const cwd = path.resolve(__dirname, '../') |
7 | 10 | const pkgName = currPkg.name || 'mpvue-simple' |
8 | | - |
9 | | - http.get('http://registry.npmjs.org/' + currPkg.name, (res) => { |
10 | | - let rawData = ''; |
11 | | - res.on('data', (chunk) => rawData += chunk); |
12 | | - res.on('end', () => { |
13 | | - try { |
| 11 | + const url = execSync('npm config get registry', {encoding: 'utf-8'}).replace('\n', ''); |
| 12 | + const request = url.startsWith('https') ? https.get : http.get; |
| 13 | + try { |
| 14 | + request(`${url}${pkgName}`, (res) => { |
| 15 | + let rawData = ''; |
| 16 | + res.on('data', (chunk) => rawData += chunk); |
| 17 | + res.on('end', () => { |
14 | 18 | const parsedData = JSON.parse(rawData); |
15 | | - let latestVesion = parsedData['dist-tags'].latest; |
| 19 | + let latestVesion = parsedData['dist-tags'].latest |
16 | 20 | if (latestVesion !== currPkg.version) { |
17 | 21 | console.log(`${pkgName} 有新版本 ${latestVesion} 啦,请注意升级。\n例如: npm install ${pkgName} -g\n`) |
18 | 22 | } |
19 | | - } catch (e) { |
20 | | - console.log(e.message); |
21 | | - } |
| 23 | + }) |
| 24 | + }).on('error', (e) => { |
| 25 | + console.error(`Got error: ${e.message}`); |
22 | 26 | }); |
23 | | - }) |
| 27 | + } catch (e) { |
| 28 | + console.log(e.message); |
| 29 | + } |
24 | 30 | } |
25 | 31 |
|
26 | 32 | exports.upgradeLogger = upgradeLogger |
0 commit comments