diff --git a/packages/cli/commands/project/dev.js b/packages/cli/commands/project/dev.js index ff638939d..3d2ebb3a0 100644 --- a/packages/cli/commands/project/dev.js +++ b/packages/cli/commands/project/dev.js @@ -25,6 +25,7 @@ const { handleProjectUpload, pollProjectBuildAndDeploy, showPlatformVersionWarning, + validateProjectConfig, } = require('../../lib/projects'); const { EXIT_CODES } = require('../../lib/enums/exitCodes'); const { @@ -87,6 +88,8 @@ exports.handler = async options => { process.exit(EXIT_CODES.ERROR); } + validateProjectConfig(projectConfig, projectDir); + const accounts = getConfigAccounts(); let targetAccountId = options.account ? accountId : null; let createNewSandbox = false; diff --git a/packages/cli/lang/en.lyaml b/packages/cli/lang/en.lyaml index e8d7f3262..9606e7e96 100644 --- a/packages/cli/lang/en.lyaml +++ b/packages/cli/lang/en.lyaml @@ -918,7 +918,7 @@ en: fileChangeError: "Failed to notify local dev server of file change: {{ message }}" projects: config: - srcOutsideProjectDir: "Project source directory '{{ srcDir }}' should be contained within '{{ projectDir }}'" + srcOutsideProjectDir: "Invalid line in {{ projectConfig}}: {{#bold}}srcDir: \"{{ srcDir }}\"{{/bold}}\n\t`srcDir` should be a relative path to a directory within {{ projectDir }}, such as \".\" or \"./src\"" uploadProjectFiles: add: "Uploading {{#bold}}{{ projectName }}{{/bold}} project files to {{ accountIdentifier }}" fail: "Failed to upload {{#bold}}{{ projectName }}{{/bold}} project files to {{ accountIdentifier }}" diff --git a/packages/cli/lib/projects.js b/packages/cli/lib/projects.js index a850c5c88..9539fd49e 100644 --- a/packages/cli/lib/projects.js +++ b/packages/cli/lib/projects.js @@ -171,10 +171,15 @@ const validateProjectConfig = (projectConfig, projectDir) => { const resolvedPath = path.resolve(projectDir, projectConfig.srcDir); if (!resolvedPath.startsWith(projectDir)) { + const projectConfigFile = path.relative( + '.', + path.join(projectDir, PROJECT_CONFIG_FILE) + ); logger.error( i18n(`${i18nKey}.config.srcOutsideProjectDir`, { srcDir: projectConfig.srcDir, projectDir, + projectConfig: projectConfigFile, }) ); return process.exit(EXIT_CODES.ERROR);