Skip to content

Commit

Permalink
Fix: --init with Vue.js failed (fixes #11970)
Browse files Browse the repository at this point in the history
  • Loading branch information
mysticatea committed Jul 14, 2019
1 parent 2a10856 commit 9ded9bc
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 9 deletions.
4 changes: 3 additions & 1 deletion lib/cli-engine/index.js
@@ -1,7 +1,9 @@
"use strict";

const { CLIEngine } = require("./cli-engine");
const { normalizePackageName } = require("./naming");

module.exports = {
CLIEngine
CLIEngine,
normalizePackageName
};
32 changes: 24 additions & 8 deletions lib/init/config-initializer.js
Expand Up @@ -16,6 +16,7 @@ const util = require("util"),
ProgressBar = require("progress"),
semver = require("semver"),
recConfig = require("../../conf/eslint-recommended"),
{ normalizePackageName } = require("../cli-engine"),
ConfigOps = require("../shared/config-ops"),
log = require("../shared/logging"),
ModuleResolver = require("../shared/relative-module-resolver"),
Expand Down Expand Up @@ -100,14 +101,29 @@ function getModulesList(config, installESLint) {
modules[`eslint-plugin-${plugin}`] = "latest";
}
}
if (config.extends && config.extends.indexOf("eslint:") === -1) {
const moduleName = `eslint-config-${config.extends}`;

modules[moduleName] = "latest";
Object.assign(
modules,
getPeerDependencies(`${moduleName}@latest`)
);
if (config.extends) {
const extendList = Array.isArray(config.extends) ? config.extends : [config.extends];

for (const extend of extendList) {
let moduleName;

if (extend.startsWith("eslint:")) {
continue;
} else if (extend.startsWith("plugin:")) {
const slashIndex = extend.lastIndexOf("/");
const pluginName = extend.slice("plugin:".length, slashIndex);

moduleName = normalizePackageName(pluginName, "eslint-plugin");
} else {
moduleName = normalizePackageName(extend, "eslint-config");
}

modules[moduleName] = "latest";
Object.assign(
modules,
getPeerDependencies(`${moduleName}@latest`)
);
}
}

if (installESLint === false) {
Expand Down
13 changes: 13 additions & 0 deletions tests/lib/init/config-initializer.js
Expand Up @@ -306,6 +306,19 @@ describe("configInitializer", () => {
});
});
});

it("should support the standard style guide with Vue.js", () => {
const config = {
extends: [
"plugin:vue/essential",
"standard"
]
};
const modules = init.getModulesList(config);

assert.include(modules, "eslint-plugin-vue@latest");
assert.include(modules, "eslint-config-standard@latest");
});
});

describe("auto", () => {
Expand Down

0 comments on commit 9ded9bc

Please sign in to comment.