39 lines
		
	
	
		
			920 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			920 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const fs = require('fs')
 | 
						|
const path = require('path')
 | 
						|
const { pathToFileURL } = require('url')
 | 
						|
const isFileEsm = require('is-file-esm')
 | 
						|
const { loadModule } = require('@vue/cli-shared-utils')
 | 
						|
 | 
						|
module.exports = function loadFileConfig (context) {
 | 
						|
  let fileConfig, fileConfigPath
 | 
						|
 | 
						|
  const possibleConfigPaths = [
 | 
						|
    process.env.VUE_CLI_SERVICE_CONFIG_PATH,
 | 
						|
    './vue.config.js',
 | 
						|
    './vue.config.cjs',
 | 
						|
    './vue.config.mjs'
 | 
						|
  ]
 | 
						|
  for (const p of possibleConfigPaths) {
 | 
						|
    const resolvedPath = p && path.resolve(context, p)
 | 
						|
    if (resolvedPath && fs.existsSync(resolvedPath)) {
 | 
						|
      fileConfigPath = resolvedPath
 | 
						|
      break
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  if (fileConfigPath) {
 | 
						|
    const { esm } = isFileEsm.sync(fileConfigPath)
 | 
						|
 | 
						|
    if (esm) {
 | 
						|
      fileConfig = import(pathToFileURL(fileConfigPath))
 | 
						|
    } else {
 | 
						|
      fileConfig = loadModule(fileConfigPath, context)
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  return {
 | 
						|
    fileConfig,
 | 
						|
    fileConfigPath
 | 
						|
  }
 | 
						|
}
 |