webpack-bootstrap
Version:
Easily implement webpack for any kind of front-end app
72 lines (50 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function () {
const configPath = (0, _configDetect2.default)(runningCwd);
let bootOptionsPromise;
if (configPath) {
const bootOptions = JSON.parse(_fs2.default.readFileSync(configPath));
bootOptionsPromise = Promise.resolve(bootOptions);
} else {
bootOptionsPromise = _inquirer2.default.prompt([{
type: 'list',
name: 'liberary',
message: 'which kind of app do you want to create?',
choices: ['default', 'vue', 'react']
}]).then(result => {
const { liberary } = result;
_fs2.default.writeFileSync(_path2.default.resolve(runningCwd, '.wbootrc'), `{"liberary": "${liberary}"}`);
return result;
});
}
return bootOptionsPromise.then(({ liberary }) => {
const webpackFinalConfig = Object.assign({}, _config2.default);
if (liberary === 'vue') {
webpackFinalConfig.module.rules = _config2.default.module.rules.concat(_config4.default.loaders);
}
if (liberary === 'react') {
webpackFinalConfig.module.rules = _config2.default.module.rules.concat(_config6.default.loaders);
}
return webpackFinalConfig;
});
};
var _inquirer = require('inquirer');
var _inquirer2 = _interopRequireDefault(_inquirer);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _configDetect = require('./config-detect');
var _configDetect2 = _interopRequireDefault(_configDetect);
var _config = require('../configs/config.default');
var _config2 = _interopRequireDefault(_config);
var _config3 = require('../configs/config.vue');
var _config4 = _interopRequireDefault(_config3);
var _config5 = require('../configs/config.react');
var _config6 = _interopRequireDefault(_config5);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const runningCwd = process.cwd();
;