diff --git a/lib/commands/init.js b/lib/commands/init.js index e3748d5dc85..ecc72cfa92b 100644 --- a/lib/commands/init.js +++ b/lib/commands/init.js @@ -1,7 +1,8 @@ "use strict"; const npmPackagesExists = require("../utils/npm-packages-exists"); -const creator = require("../init/index").creator; +const defaultGenerator = require("../generators/init-generator"); +const modifyHelper = require("../utils/modify-config-helper"); /** * @@ -15,7 +16,7 @@ const creator = require("../init/index").creator; module.exports = function initializeInquirer(pkg) { if (pkg.length === 0) { - return creator(); + return modifyHelper("init", defaultGenerator); } return npmPackagesExists(pkg); }; diff --git a/lib/init/transformations/index.js b/lib/init/transformations/index.js index dc44c0ed42f..b29d1b3f865 100644 --- a/lib/init/transformations/index.js +++ b/lib/init/transformations/index.js @@ -98,7 +98,9 @@ module.exports = function runTransform(webpackProperties, action) { .filter(e => e[1]); const ast = j( - action ? webpackProperties.configFile : "module.exports = {}" + action && action !== "init" + ? webpackProperties.configFile + : "module.exports = {}" ); const transformAction = action || null; @@ -111,15 +113,16 @@ module.exports = function runTransform(webpackProperties, action) { }) .then(_ => { let configurationName; - if (!config.configName) { + if (!config.configName && action !== "init") { configurationName = "webpack.config.js"; } else { configurationName = "webpack." + config.configName + ".js"; } - const outputPath = action - ? webpackProperties.configPath - : path.join(process.cwd(), configurationName); + const outputPath = + action && action !== "init" + ? webpackProperties.configPath + : path.join(process.cwd(), configurationName); const source = ast.toSource({ quote: "single" }); @@ -130,7 +133,7 @@ module.exports = function runTransform(webpackProperties, action) { console.error(err.message ? err.message : err); }); }); - if (action) { + if (action && webpackProperties.config.item) { process.stdout.write( "\n" + chalk.green( diff --git a/lib/utils/modify-config-helper.js b/lib/utils/modify-config-helper.js index cf2f8b81dfa..179ba0c4bbe 100644 --- a/lib/utils/modify-config-helper.js +++ b/lib/utils/modify-config-helper.js @@ -16,12 +16,10 @@ const runTransform = require("../init/transformations/index"); */ module.exports = function modifyHelperUtil(action, generator) { - const configPath = path.resolve(process.cwd(), "webpack.config.js"); + let configPath = path.resolve(process.cwd(), "webpack.config.js"); const webpackConfigExists = fs.existsSync(configPath); if (!webpackConfigExists) { - throw new Error( - "Couldn't find a webpack configuration in your project path" - ); + configPath = null; } const env = yeoman.createEnv("webpack", null); const generatorName = `webpack-${action}-generator`; @@ -30,7 +28,7 @@ module.exports = function modifyHelperUtil(action, generator) { env.run(generatorName).on("end", () => { const config = Object.assign( { - configFile: fs.readFileSync(configPath, "utf8"), + configFile: !configPath ? null : fs.readFileSync(configPath, "utf8"), configPath: configPath }, env.getArgument("configuration")