@gridsome/cli
Version:
A command line tool for creating new Gridsome projects.
52 lines (40 loc) • 1.41 kB
JavaScript
const chalk = require('chalk')
const resolveCwd = require('resolve-cwd')
module.exports = function resolveVersions (pkgPath) {
const cliVersion = require('../../package.json').version
const versions = [`@gridsome/cli v${cliVersion}`]
if (pkgPath) {
try {
versions.push(...resolveProjectVersions(pkgPath))
} catch (err) {
versions.push('\nFailed to read installed gridsome version:')
versions.push(chalk.red(err.message))
}
}
return versions.join('\n')
}
function resolveProjectVersions (pkgPath) {
const versions = []
const projectPkgJson = require(pkgPath)
const { devDependencies = {}, dependencies = {}} = projectPkgJson
const packages = { ...devDependencies, ...dependencies }
if (packages.gridsome) {
const version = resolvePackageVersion('gridsome')
if (version) versions.push(`gridsome v${version}`)
}
// for (const name in packages) {
// if (/^@?gridsome[-|\/]/.test(name)) {
// const version = resolvePackageVersion(name)
// if (version) versions.push(`- ${name} v${version}`)
// }
// }
// if (versions.length) {
// versions.unshift(chalk.grey('\nProject dependencies:'))
// }
return versions
}
function resolvePackageVersion (name) {
const pkgPath = resolveCwd.silent(`${name}/package.json`)
const pkgJson = pkgPath ? require(pkgPath) : null
return pkgJson ? pkgJson.version : null
}