From 90d387f650dbcba3cf1afff2baa98fa7c9a184bf Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Sun, 30 Dec 2018 17:45:07 +0800 Subject: [PATCH] fix: fix eslint cwd confusion during onCreateComplete hook execution (#3212) * fix: fix eslint cwd confusion during onCreateComplete hook execution fixes #2554 fixes #3142 * fix: do not mock process.cwd during invoking --- .../__tests__/eslintGenerator.spec.js | 15 +++++++++++++++ packages/@vue/cli-plugin-eslint/lint.js | 11 +++++++++++ 2 files changed, 26 insertions(+) diff --git a/packages/@vue/cli-plugin-eslint/__tests__/eslintGenerator.spec.js b/packages/@vue/cli-plugin-eslint/__tests__/eslintGenerator.spec.js index 481a9ccf4..1a10291ce 100644 --- a/packages/@vue/cli-plugin-eslint/__tests__/eslintGenerator.spec.js +++ b/packages/@vue/cli-plugin-eslint/__tests__/eslintGenerator.spec.js @@ -163,3 +163,18 @@ test('append to existing .editorconfig', async () => { expect(editorconfig).toMatch('root = true') expect(editorconfig).toMatch('[*.{js,jsx,ts,tsx,vue}]') }) + +test('airbnb config + typescript + unit-mocha', async () => { + await create('eslint-airbnb-typescript', { + plugins: { + '@vue/cli-plugin-eslint': { + config: 'airbnb', + lintOn: 'commit' + }, + '@vue/cli-plugin-typescript': { + classComponent: true + }, + '@vue/cli-plugin-unit-mocha': {} + } + }) +}) diff --git a/packages/@vue/cli-plugin-eslint/lint.js b/packages/@vue/cli-plugin-eslint/lint.js index 6681bbaf6..5809a6915 100644 --- a/packages/@vue/cli-plugin-eslint/lint.js +++ b/packages/@vue/cli-plugin-eslint/lint.js @@ -56,7 +56,18 @@ module.exports = function lint (args = {}, api) { ? args._ : defaultFilesToLint + // mock process.cwd before executing + // See: + // https://github.com/vuejs/vue-cli/issues/2554 + // https://github.com/benmosher/eslint-plugin-import/issues/602 + // https://github.com/eslint/eslint/issues/11218 + const processCwd = process.cwd + if (!api.invoking) { + process.cwd = () => cwd + } const report = engine.executeOnFiles(files) + process.cwd = processCwd + const formatter = engine.getFormatter(args.format || 'codeframe') if (config.fix) {