UNPKG

deployment-tools

Version:

A Node.js scripts that helps you to compile and deploy the static assets (CSS/JavaScript/images) of your website without gulp and grunt using Node.js and npm scripts

70 lines (61 loc) 3.34 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _path = require('path'); var _path2 = _interopRequireDefault(_path); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const debug = require('debug')('dt'); function getWebpackConfig(config, dev = false) { // the webpack files must be in the JavaScript folder const file = dev ? 'webpack.dev.config.js' : 'webpack.build.config.js'; const filePath = _path2.default.join(process.cwd(), `${ config.get('srcJsPath') }${ file }`); debug(`[WEBPACK-HELPER] load Webpack file ${ filePath } dev:${ dev } cwd:${ process.cwd() }`); const webpackConfigFile = require(filePath); // eslint-disable-line global-require const webpackDevServerHost = config.get('webpackDevServerHost') || 'localhost'; const webpackDevServerPort = config.get('webpackDevServerPort') || 8080; const webpackConfig = Object.assign({}, webpackConfigFile); // Override some values at run-time // output path webpackConfig.output.path = _path2.default.join(process.cwd(), config.get('buildPathJs')); debug(`[WEBPACK-HELPER] webpackConfig.output.path ${ webpackConfig.output.path }`); // publicPath for CDN or webpack dev server (in dev mode) // {domain}/{projectName}/{version}/{buildPathJs} // es: http://az889637.vo.msecnd.net/projectName/2.9.0/bundles/ if (dev) { // serve js files from webpack dev server on... webpackConfig.output.publicPath = `http://${ webpackDevServerHost }:${ webpackDevServerPort }/`; } else { // serve js files from CDN webpackConfig.output.publicPath = `${ config.get('cdn') }/${ config.get('projectName') }${ config.get('buildPathJs') }`; } debug(`[WEBPACK-HELPER] webpackConfig.output.publicPath ${ webpackConfig.output.publicPath }`); // main entry // .{srcJsPath}{mainJs} // es: ./data/scripts/main.js webpackConfig.entry.main = _path2.default.join(process.cwd(), `${ config.get('srcJsPath') }${ config.get('mainJs') }`); debug(`[WEBPACK-HELPER] webpackConfig.entry.main ${ webpackConfig.entry.main }`); // main vendors [OPT-IN] // .{srcJsPath}{vendorsJs} // es: ./data/scripts/vendors.js if (config.get('vendorsJs') !== undefined) { webpackConfig.entry.vendors = _path2.default.join(process.cwd(), `${ config.get('srcJsPath') }${ config.get('vendorsJs') }`); debug(`[WEBPACK-HELPER] webpackConfig.entry.vendors ${ webpackConfig.entry.vendors }`); } // main backoffice [OPT-IN] // .{srcJsPath}{mainBackoffileJs} // es: ./data/scripts/main-backoffice.js if (config.get('mainBackoffileJs') !== undefined) { webpackConfig.entry['main-backoffice'] = _path2.default.join(process.cwd(), `${ config.get('srcJsPath') }${ config.get('mainBackoffileJs') }`); debug(`[WEBPACK-HELPER] webpackConfig.entry.main-backoffice ${ webpackConfig.entry['main-backoffice'] }`); } // vendors backoffice [OPT-IN] // .{srcJsPath}{vendorsBackoffileJs} // es: ./data/scripts/vendors-backoffice.js if (config.get('vendorsBackoffileJs') !== undefined) { webpackConfig.entry['vendors-backoffice'] = _path2.default.join(process.cwd(), `${ config.get('srcJsPath') }${ config.get('vendorsBackoffileJs') }`); debug(`[WEBPACK-HELPER] webpackConfig.entry.vendors-backoffice ${ webpackConfig.entry['vendors-backoffice'] }`); } return webpackConfig; } exports.default = getWebpackConfig;