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
 | |
|   }
 | |
| }
 |