Files
actions/webpack.config.js
Artur 1a99526cb9 Merge pull request #812 from GitTools/bug/prerelease
Made possible to install a pre-release version
2023-03-11 13:44:42 +01:00

77 lines
2.3 KiB
JavaScript

const path = require('path');
const webpack = require('webpack');
const ReplaceInFileWebpackPlugin = require('replace-in-file-webpack-plugin');
function getConfig(mode, agent, entry) {
return {
entry: entry,
target: 'node',
mode: mode,
devtool: mode === 'development' ? 'inline-source-map' : false,
module: {
rules: [{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/,
}],
},
resolve: {
extensions: ['.tsx', '.ts', '.js', '.json'],
},
output: {
libraryTarget: 'commonjs2',
filename: '[name]/bundle.js',
path: path.resolve(__dirname, `dist/${agent}`),
},
node: {
__dirname: false,
__filename: false
},
plugins: [
new webpack.NormalModuleReplacementPlugin(
/agent\/mock\/build-agent/,
`../agent/${agent}/build-agent`
),
new ReplaceInFileWebpackPlugin([{
dir: `dist/${agent}`,
test: /bundle.js/,
rules: [{
search: /__webpack_require__\(.*\)\(resourceFile\)/,
replace: '_loadResJson(resourceFile)'
}, {
search: /let pkg.*'package.json'\)\);/,
replace: 'let pkg = { version: "1.2.3" };'
}]
}])
],
experiments: {
topLevelAwait: true
}
}
}
const entryPoints = [
'gitversion/setup',
'gitversion/execute',
'gitreleasemanager/setup',
'gitreleasemanager/create',
'gitreleasemanager/discard',
'gitreleasemanager/close',
'gitreleasemanager/open',
'gitreleasemanager/publish',
'gitreleasemanager/addasset',
];
module.exports = (env) => {
const task = env.task || 'compile';
const agent = env.agent || 'mock';
const mode = task === 'compile' ? 'development' : 'production';
const entry = {};
entryPoints.forEach(key => {
const resource = task === 'compile' ? `src/tasks/${key}.ts` : `dist/${agent}/${key}/bundle.js`;
entry[key] = path.resolve(__dirname, resource);
});
return getConfig(mode, agent, entry);
};