just-scripts
Version:
Just Stack Scripts
42 lines • 1.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.webpackCliTask = void 0;
const just_task_1 = require("just-task");
const just_scripts_utils_1 = require("just-scripts-utils");
const getTsNodeEnv_1 = require("../typescript/getTsNodeEnv");
const findWebpackConfig_1 = require("../webpack/findWebpackConfig");
/**
* webpackCliTask - task for running webpack as a cli command
*/
function webpackCliTask(options = {}) {
const webpackCliCmd = just_task_1.resolve('webpack-cli/bin/cli.js');
if (!webpackCliCmd) {
throw new Error('cannot find webpack-cli, please install it');
}
return function webpackCli() {
just_task_1.logger.info(`Running webpack-cli as a node process`);
const args = [
...(options && options.nodeArgs ? options.nodeArgs : []),
webpackCliCmd,
...(options && options.webpackCliArgs ? options.webpackCliArgs : []),
];
let configPath = findWebpackConfig_1.findWebpackConfig('webpack.config.js');
if (configPath) {
options.env = {
...options.env,
...(configPath.endsWith('.ts') && getTsNodeEnv_1.getTsNodeEnv(options.tsconfig, options.transpileOnly)),
};
}
if (options.webpackCliArgs) {
const configIndex = options.webpackCliArgs.indexOf('--config');
const configPathAvailable = configIndex > -1 && options.webpackCliArgs.length > configIndex + 2;
if (configPathAvailable) {
configPath = options.webpackCliArgs[configIndex + 1];
}
}
just_task_1.logger.info(`webpack-cli arguments: ${process.execPath} ${args.join(' ')}`);
return just_scripts_utils_1.spawn(process.execPath, args, { stdio: 'inherit', env: options.env });
};
}
exports.webpackCliTask = webpackCliTask;
//# sourceMappingURL=webpackCliTask.js.map