From 7fed0c8b2249bfef75df1fa317e6464cea6af6b9 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Sat, 29 Dec 2018 12:30:55 +0800 Subject: [PATCH 1/2] fix: fix eslint cwd confusion during onCreateComplete hook execution fixes #2554 fixes #3142 --- .../__tests__/eslintPlugin.spec.js | 15 +++++++++++++++ packages/@vue/cli-plugin-eslint/lint.js | 9 +++++++++ 2 files changed, 24 insertions(+) diff --git a/packages/@vue/cli-plugin-eslint/__tests__/eslintPlugin.spec.js b/packages/@vue/cli-plugin-eslint/__tests__/eslintPlugin.spec.js index e9ff6d5276..680887d853 100644 --- a/packages/@vue/cli-plugin-eslint/__tests__/eslintPlugin.spec.js +++ b/packages/@vue/cli-plugin-eslint/__tests__/eslintPlugin.spec.js @@ -139,3 +139,18 @@ test('should not throw when src folder is ignored by .eslintignore', async () => // should not throw await run('vue-cli-service lint') }) + +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 6681bbaf60..d53f0b6902 100644 --- a/packages/@vue/cli-plugin-eslint/lint.js +++ b/packages/@vue/cli-plugin-eslint/lint.js @@ -56,7 +56,16 @@ 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 + process.cwd = () => cwd const report = engine.executeOnFiles(files) + process.cwd = processCwd + const formatter = engine.getFormatter(args.format || 'codeframe') if (config.fix) { From 4826f3e797d6b41cd91aa77ecd57a1753fcd9403 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Sat, 29 Dec 2018 18:55:57 +0800 Subject: [PATCH 2/2] fix: do not mock process.cwd during invoking --- .../__tests__/eslintGenerator.spec.js | 15 +++++++++++++++ .../__tests__/eslintPlugin.spec.js | 15 --------------- packages/@vue/cli-plugin-eslint/lint.js | 4 +++- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/packages/@vue/cli-plugin-eslint/__tests__/eslintGenerator.spec.js b/packages/@vue/cli-plugin-eslint/__tests__/eslintGenerator.spec.js index 481a9ccf43..1a10291ce6 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/__tests__/eslintPlugin.spec.js b/packages/@vue/cli-plugin-eslint/__tests__/eslintPlugin.spec.js index 680887d853..e9ff6d5276 100644 --- a/packages/@vue/cli-plugin-eslint/__tests__/eslintPlugin.spec.js +++ b/packages/@vue/cli-plugin-eslint/__tests__/eslintPlugin.spec.js @@ -139,18 +139,3 @@ test('should not throw when src folder is ignored by .eslintignore', async () => // should not throw await run('vue-cli-service lint') }) - -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 d53f0b6902..5809a6915a 100644 --- a/packages/@vue/cli-plugin-eslint/lint.js +++ b/packages/@vue/cli-plugin-eslint/lint.js @@ -62,7 +62,9 @@ module.exports = function lint (args = {}, api) { // https://github.com/benmosher/eslint-plugin-import/issues/602 // https://github.com/eslint/eslint/issues/11218 const processCwd = process.cwd - process.cwd = () => cwd + if (!api.invoking) { + process.cwd = () => cwd + } const report = engine.executeOnFiles(files) process.cwd = processCwd