fix: improve nuxt version number when running from git (#4946)

This commit is contained in:
Pim 2019-02-04 22:20:09 +01:00 committed by Pooya Parsa
parent 858c9eeb5d
commit 92803b23d9
2 changed files with 21 additions and 22 deletions

View File

@ -10,7 +10,7 @@
"clean:build": "rimraf distributions/*/dist packages/*/dist",
"clean:examples": "rimraf examples/*/dist examples/*/.nuxt",
"clean:test": "rimraf test/fixtures/*/dist test/fixtures/*/.nuxt*",
"dev": "node -r esm ./scripts/dev",
"dev": "node -r esm ./scripts/dev.js",
"coverage": "codecov",
"lint": "eslint --ext .js,.mjs,.vue .",
"lint:app": "eslint-multiplexer eslint --ignore-path packages/vue-app/template/.eslintignore 'test/fixtures/!(missing-plugin)/.nuxt!(-dev)/**' | eslint-multiplexer -b",

View File

@ -24,32 +24,31 @@ const _require = esm(module, {
const execa = require('execa')
global.__NUXT = new Proxy({}, {
get(target, propertyKey, receiver) {
if (propertyKey === 'version') {
try {
const { stdout } = execa.sync('git', ['status', '-s', '-b', '--porcelain=2'])
global.__NUXT = {}
Object.defineProperty(global.__NUXT, 'version', {
enumerable: true,
get() {
try {
const { stdout } = execa.sync('git', ['status', '-s', '-b', '--porcelain=2'])
const status = { dirty: false }
for (const line of stdout.split('\\n')) {
if (line[0] === '#') {
const match = line.match(/branch\.([^\\s]+) (.*)\$/)
if (match && match.length) {
status[match[1]] = match[2]
}
} else {
status.dirty = true
break
const status = { dirty: false }
for (const line of stdout.split('\\n')) {
if (line[0] === '#') {
const match = line.match(/branch\\.([^\\s]+) (.*)$/)
if (match && match.length) {
status[match[1]] = match[2]
}
} else {
status.dirty = true
break
}
return \`git<\${status.head}\${status.dirty ? '~' : '-'}\${(status.oid && status.oid.substr(0, 7)) || ''}> (\${status.ab})\`
} catch (err) {
return 'source'
}
}
return target[propertyKey]
return \`git<\${status.head}\${status.dirty ? '~' : '-'}\${(status.oid && status.oid.substr(0, 7)) || ''}>\` +
(status.ab ? \` (\${status.ab})\` : '')
} catch (err) {
return 'source'
}
}
})