using webpack for azure task

This commit is contained in:
Artur Stolear
2020-01-20 18:52:47 +02:00
parent 8c92ba9adb
commit 5ed9f1a870
10 changed files with 127 additions and 224 deletions

View File

@@ -1,5 +1,6 @@
const path = require('path');
const webpack = require('webpack');
const ReplaceInFileWebpackPlugin = require('replace-in-file-webpack-plugin');
module.exports = (env) => {
const mode = env.mode || 'development';
@@ -8,7 +9,7 @@ module.exports = (env) => {
return {
entry: {
'setup-gitversion': path.resolve(__dirname, 'src/setup-gitversion.ts'),
//'execute-gitversion': path.resolve(__dirname, 'src/execute-gitversion.ts'),
'execute-gitversion': path.resolve(__dirname, 'src/execute-gitversion.ts'),
},
target: 'node',
mode: mode,
@@ -18,12 +19,13 @@ module.exports = (env) => {
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}`),
},
@@ -31,7 +33,27 @@ module.exports = (env) => {
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: 'require(resourceFile)'
}, {
search: /path.join\(__dirname, 'lib.json'\)/,
replace: "path.resolve('lib.json')"
}, {
search: /let pkg.*'package.json'\)\);/,
replace: ''
}, {
search: /let userAgent = 'vsts-task-installer\/' \+ pkg.version;/,
replace: "let userAgent = 'vsts-task-installer'"
}, {
search: /tl.setResourcePath\(path.join\(__dirname, 'lib.json'\)\)/,
replace: "tl.setResourcePath(path.resolve('lib.json'))"
}]
}])
]
}
};