diff --git a/src/cli-util.js b/src/cli-util.js index ab8d82a0f..7e570a686 100644 --- a/src/cli-util.js +++ b/src/cli-util.js @@ -581,8 +581,13 @@ function normalizeConfig(type, rawConfig, options) { const option = constant.detailedOptionMap[key]; - if (type === "cli" && option === undefined) { - // unknown option + // unknown option + if (option === undefined) { + // no need to warn for CLI since it's already warned in minimist + if (type === "api") { + console.warn(`Ignored unknown option: ${rawKey}`); + } + return; } diff --git a/tests_integration/__tests__/__snapshots__/config-invalid.js.snap b/tests_integration/__tests__/__snapshots__/config-invalid.js.snap index 8d1e66082..4b0c32e9f 100644 --- a/tests_integration/__tests__/__snapshots__/config-invalid.js.snap +++ b/tests_integration/__tests__/__snapshots__/config-invalid.js.snap @@ -1,5 +1,10 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`show warning with unknown option 1`] = ` +"Ignored unknown option: hello +" +`; + exports[`throw error with invalid config format 1`] = ` "Error: Invalid configuration file. Failed to parse \\"/tests_integration/cli/config/invalid/file/.prettierrc\\" as JSON, JS, or YAML. diff --git a/tests_integration/__tests__/config-invalid.js b/tests_integration/__tests__/config-invalid.js index 7c1ab94c9..9bdce5faa 100644 --- a/tests_integration/__tests__/config-invalid.js +++ b/tests_integration/__tests__/config-invalid.js @@ -45,3 +45,12 @@ test("throw error with invalid config precedence option (configPrecedence)", () expect(output.stderr).toMatchSnapshot(); expect(output.status).not.toBe(0); }); + +test("show warning with unknown option", () => { + const output = runPrettier("cli/config/invalid", [ + "--config", + "option/unknown" + ]); + expect(output.stderr).toMatchSnapshot(); + expect(output.status).toBe(0); +}); diff --git a/tests_integration/cli/config/invalid/option/unknown b/tests_integration/cli/config/invalid/option/unknown new file mode 100644 index 000000000..d02fab031 --- /dev/null +++ b/tests_integration/cli/config/invalid/option/unknown @@ -0,0 +1,3 @@ +{ + "hello": "world" +} \ No newline at end of file