UNPKG

webpack-pkg-plugin-v4

Version:

Makes executables from your scripts with Webpack

39 lines (32 loc) 1.12 kB
const {exec} = require('pkg') const path = require('path') class WebpackPkgPlugin { constructor ({targets, output}) { const isArray = targets instanceof Array if (!isArray) { console.log( '"targets" option for WebpackPkgPlugin isn\'t specified. Using defaults.' ) } const arrayOfTargets = isArray ? targets : ['host'] this.options = { targets: arrayOfTargets, output } } apply (compiler) { compiler.hooks.afterEmit.tapAsync('WebpackPkgPlugin', async (compilation, callback) => { const {targets, output} = this.options; const outputPath = compilation.compiler.options.output.path; // NOTE: get only first file from compiled assets const IAssumeThatYouConcatenatedYourApp = Object.keys( compilation.assets )[0]; const entry = path.join(outputPath, IAssumeThatYouConcatenatedYourApp); const distPath = path.join(outputPath, output); await exec([entry, '--targets', targets.join(','), '--out-path', distPath]); callback(); }) } } module.exports.WebpackPkgPlugin = WebpackPkgPlugin