2018-10-25 11:22:31 +00:00
|
|
|
#!/usr/bin/env node -r esm
|
|
|
|
import path from 'path'
|
|
|
|
import fs from 'fs-extra'
|
|
|
|
import consola from 'consola'
|
|
|
|
|
|
|
|
import Package from './package.js'
|
|
|
|
|
2019-01-16 17:53:14 +00:00
|
|
|
const useCjs = [
|
2018-11-01 04:00:28 +00:00
|
|
|
'@nuxt/cli'
|
2019-01-16 17:53:14 +00:00
|
|
|
]
|
2018-11-01 04:00:28 +00:00
|
|
|
|
|
|
|
const stub = {
|
|
|
|
es: `export * from '../src/index'`,
|
|
|
|
cjs: `const esm = require('esm')
|
|
|
|
|
|
|
|
const _require = esm(module, {
|
|
|
|
cache: false,
|
|
|
|
cjs: {
|
|
|
|
cache: true,
|
|
|
|
vars: true,
|
|
|
|
namedExports: true
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
2019-01-16 17:53:14 +00:00
|
|
|
const execa = require('execa')
|
|
|
|
|
2019-02-04 21:20:09 +00:00
|
|
|
global.__NUXT = {}
|
|
|
|
Object.defineProperty(global.__NUXT, 'version', {
|
|
|
|
enumerable: true,
|
|
|
|
get() {
|
|
|
|
try {
|
|
|
|
const { stdout } = execa.sync('git', ['status', '-s', '-b', '--porcelain=2'])
|
2019-01-16 17:53:14 +00:00
|
|
|
|
2019-02-04 21:20:09 +00:00
|
|
|
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]
|
2019-01-16 17:53:14 +00:00
|
|
|
}
|
2019-02-04 21:20:09 +00:00
|
|
|
} else {
|
|
|
|
status.dirty = true
|
|
|
|
break
|
2019-01-16 17:53:14 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-02-04 21:20:09 +00:00
|
|
|
return \`git<\${status.head}\${status.dirty ? '~' : '-'}\${(status.oid && status.oid.substr(0, 7)) || ''}>\` +
|
|
|
|
(status.ab ? \` (\${status.ab})\` : '')
|
|
|
|
} catch (err) {
|
|
|
|
return 'source'
|
|
|
|
}
|
2019-01-16 17:53:14 +00:00
|
|
|
}
|
|
|
|
})
|
|
|
|
|
2018-11-01 04:00:28 +00:00
|
|
|
module.exports = _require('../src/index')
|
2018-11-27 15:32:00 +00:00
|
|
|
` }
|
2018-11-01 04:00:28 +00:00
|
|
|
|
2018-10-25 11:22:31 +00:00
|
|
|
async function main() {
|
|
|
|
// Read package at current directory
|
|
|
|
const rootPackage = new Package()
|
2018-11-27 15:32:00 +00:00
|
|
|
const workspacePackages = await rootPackage.getWorkspacePackages()
|
2018-10-25 11:22:31 +00:00
|
|
|
|
|
|
|
// Create a dev-only entrypoint to the src
|
|
|
|
for (const pkg of workspacePackages) {
|
2018-10-26 17:58:21 +00:00
|
|
|
if (!pkg.pkg.main || !pkg.options.build) {
|
2018-10-25 11:22:31 +00:00
|
|
|
continue
|
|
|
|
}
|
|
|
|
consola.info(pkg.pkg.main)
|
|
|
|
const distMain = pkg.resolvePath(pkg.pkg.main)
|
|
|
|
await fs.mkdirp(path.dirname(distMain))
|
2019-01-16 17:53:14 +00:00
|
|
|
await fs.writeFile(distMain, useCjs.includes(pkg.pkg.name) ? stub.cjs : stub.es)
|
2018-10-25 11:22:31 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
main().catch((error) => {
|
|
|
|
consola.error(error)
|
|
|
|
process.exit(1)
|
|
|
|
})
|