47 lines
1.7 KiB
JavaScript
47 lines
1.7 KiB
JavaScript
const {merge} = require('webpack-merge');
|
|
const { sentryWebpackPlugin } = require("@sentry/webpack-plugin");
|
|
const commonConfiguration = require('./webpack.common.js');
|
|
const {CleanWebpackPlugin} = require('clean-webpack-plugin');
|
|
const CopyWebpackPlugin = require("copy-webpack-plugin");
|
|
const path = require("path");
|
|
const webpack = require('webpack')
|
|
|
|
// available CI variables https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
|
|
const SENTRY_DSN = process.env.SENTRY_DSN;
|
|
|
|
const version = require(path.resolve(process.cwd(), 'package.json')).version;
|
|
const SENTRY_RELEASE = `${process.env.CI_PROJECT_NAME} ${version}`;
|
|
const AMPLITUDE_API_KEY = process.env.AMPLITUDE_API_KEY_PROD
|
|
|
|
module.exports = (env) => {
|
|
return merge(
|
|
commonConfiguration(env),
|
|
{
|
|
context: path.resolve(process.cwd()), // Корень проекта
|
|
entry: './src/prod.js', // Относительный путь от контекста
|
|
mode: 'production',
|
|
devtool: 'source-map',
|
|
plugins:
|
|
[
|
|
new webpack.DefinePlugin({
|
|
__SENTRY_DSN: JSON.stringify(SENTRY_DSN),
|
|
__SENTRY_RELEASE: JSON.stringify(SENTRY_RELEASE),
|
|
__AMPLITUDE_API_KEY: JSON.stringify(AMPLITUDE_API_KEY),
|
|
}),
|
|
new CleanWebpackPlugin(),
|
|
new CopyWebpackPlugin({
|
|
patterns: [
|
|
{ from: path.resolve(__dirname, '../loader/loader.js') },
|
|
],
|
|
}),
|
|
sentryWebpackPlugin({
|
|
authToken: process.env.SENTRY_AUTH_TOKEN,
|
|
org: "sentry",
|
|
project: process.env.SENTRY_PROJECT,
|
|
url: "https://sentry.popiplay.dev",
|
|
}),
|
|
],
|
|
},
|
|
);
|
|
}
|