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:build": "rimraf distributions/*/dist packages/*/dist",
"clean:examples": "rimraf examples/*/dist examples/*/.nuxt", "clean:examples": "rimraf examples/*/dist examples/*/.nuxt",
"clean:test": "rimraf test/fixtures/*/dist test/fixtures/*/.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", "coverage": "codecov",
"lint": "eslint --ext .js,.mjs,.vue .", "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", "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') const execa = require('execa')
global.__NUXT = new Proxy({}, { global.__NUXT = {}
get(target, propertyKey, receiver) { Object.defineProperty(global.__NUXT, 'version', {
if (propertyKey === 'version') { enumerable: true,
try { get() {
const { stdout } = execa.sync('git', ['status', '-s', '-b', '--porcelain=2']) try {
const { stdout } = execa.sync('git', ['status', '-s', '-b', '--porcelain=2'])
const status = { dirty: false } const status = { dirty: false }
for (const line of stdout.split('\\n')) { for (const line of stdout.split('\\n')) {
if (line[0] === '#') { if (line[0] === '#') {
const match = line.match(/branch\.([^\\s]+) (.*)\$/) const match = line.match(/branch\\.([^\\s]+) (.*)$/)
if (match && match.length) { if (match && match.length) {
status[match[1]] = match[2] status[match[1]] = match[2]
}
} else {
status.dirty = true
break
} }
} 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'
}
} }
}) })