mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
b62a0e8f55
* Remove the use of CDN and bundle everything inside the app. We still pre-build the prefetcher because it needs different webpack config which only targets browsers supports Service Workers. * Remove cdn config item. We no longer using it. * Stop adding script tags when staticMarkup=true * Remove babel-plugin-transform-remove-strict-mode NPM module.
34 lines
632 B
JavaScript
34 lines
632 B
JavaScript
import { join } from 'path'
|
|
import { readFile } from 'mz/fs'
|
|
|
|
const cache = new Map()
|
|
|
|
const defaultConfig = {}
|
|
|
|
export default function getConfig (dir) {
|
|
if (!cache.has(dir)) {
|
|
cache.set(dir, loadConfig(dir))
|
|
}
|
|
return cache.get(dir)
|
|
}
|
|
|
|
async function loadConfig (dir) {
|
|
const path = join(dir, 'package.json')
|
|
|
|
let data
|
|
try {
|
|
data = await readFile(path, 'utf8')
|
|
} catch (err) {
|
|
if (err.code === 'ENOENT') {
|
|
data = '{}'
|
|
} else {
|
|
throw err
|
|
}
|
|
}
|
|
|
|
// no try-cache, it must be a valid json
|
|
const config = JSON.parse(data).next || {}
|
|
|
|
return Object.assign({}, defaultConfig, config)
|
|
}
|