Sentry support, better WebPack config
This commit is contained in:
parent
ac9540044b
commit
7ffe18ee52
|
@ -509,6 +509,8 @@ custom-*.*
|
|||
*.log
|
||||
*.txt
|
||||
|
||||
config.json
|
||||
|
||||
sw.js
|
||||
!/server/resources/src/sw.js
|
||||
|
||||
|
|
|
@ -47,8 +47,7 @@ $baseConfig = [
|
|||
*.lock
|
||||
',
|
||||
'before' => [
|
||||
'local: cd server && composer update --no-dev -o',
|
||||
'local: cd server/resources && npm run prod'
|
||||
'local: cd server && composer update --no-dev -o'
|
||||
],
|
||||
'after' => [
|
||||
'local: cd server && composer install'
|
||||
|
@ -68,6 +67,15 @@ try {
|
|||
$config = [];
|
||||
foreach ($remotes as $key => $value) {
|
||||
$config[$key] = array_merge($value, $baseConfig);
|
||||
if(isset($value["before"]) && $value["before"] === false){
|
||||
$config[$key]["before"] = [];
|
||||
} else {
|
||||
$env = isset($config[$key]["sentry_env"]) ? $config[$key]["sentry_env"] : "prod";
|
||||
$config[$key]["before"][] = "local: cd server/resources && npm run prod -- --env sentry_environment=".$env;
|
||||
}
|
||||
if(isset($value["after"]) && $value["after"] === false){
|
||||
$config[$key]["after"] = [];
|
||||
}
|
||||
}
|
||||
|
||||
return $config;
|
|
@ -327,16 +327,16 @@
|
|||
},
|
||||
{
|
||||
"name": "giggsey/libphonenumber-for-php",
|
||||
"version": "8.12.15",
|
||||
"version": "8.12.18",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/giggsey/libphonenumber-for-php.git",
|
||||
"reference": "c1f328bface2745ff1a292639dd68cafc673a456"
|
||||
"reference": "2d50e0aea1f70508b39a3d22c62d24d66d532ed2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/giggsey/libphonenumber-for-php/zipball/c1f328bface2745ff1a292639dd68cafc673a456",
|
||||
"reference": "c1f328bface2745ff1a292639dd68cafc673a456",
|
||||
"url": "https://api.github.com/repos/giggsey/libphonenumber-for-php/zipball/2d50e0aea1f70508b39a3d22c62d24d66d532ed2",
|
||||
"reference": "2d50e0aea1f70508b39a3d22c62d24d66d532ed2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -396,7 +396,7 @@
|
|||
"issues": "https://github.com/giggsey/libphonenumber-for-php/issues",
|
||||
"source": "https://github.com/giggsey/libphonenumber-for-php"
|
||||
},
|
||||
"time": "2020-12-15T10:15:17+00:00"
|
||||
"time": "2021-02-08T10:31:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "giggsey/locale",
|
||||
|
@ -726,16 +726,16 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.20.0",
|
||||
"version": "v1.22.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41"
|
||||
"reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41",
|
||||
"reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
|
||||
"reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -747,7 +747,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.20-dev"
|
||||
"dev-main": "1.22-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
@ -785,7 +785,7 @@
|
|||
"portable"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.0"
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -801,20 +801,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-10-23T14:02:19+00:00"
|
||||
"time": "2021-01-07T16:49:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.20.0",
|
||||
"version": "v1.22.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "39d483bdf39be819deabf04ec872eb0b2410b531"
|
||||
"reference": "5232de97ee3b75b0360528dae24e73db49566ab1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531",
|
||||
"reference": "39d483bdf39be819deabf04ec872eb0b2410b531",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1",
|
||||
"reference": "5232de97ee3b75b0360528dae24e73db49566ab1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -826,7 +826,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.20-dev"
|
||||
"dev-main": "1.22-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
@ -865,7 +865,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0"
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -881,20 +881,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-10-23T14:02:19+00:00"
|
||||
"time": "2021-01-22T09:19:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tracy/tracy",
|
||||
"version": "v2.8.1",
|
||||
"version": "v2.8.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nette/tracy.git",
|
||||
"reference": "37c238d08db44f2cd6f21f7d97e5cea11d631fae"
|
||||
"reference": "342674bbf72365e8456de9855a8cd839ca695933"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nette/tracy/zipball/37c238d08db44f2cd6f21f7d97e5cea11d631fae",
|
||||
"reference": "37c238d08db44f2cd6f21f7d97e5cea11d631fae",
|
||||
"url": "https://api.github.com/repos/nette/tracy/zipball/342674bbf72365e8456de9855a8cd839ca695933",
|
||||
"reference": "342674bbf72365e8456de9855a8cd839ca695933",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -953,22 +953,22 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/nette/tracy/issues",
|
||||
"source": "https://github.com/nette/tracy/tree/v2.8.1"
|
||||
"source": "https://github.com/nette/tracy/tree/v2.8.3"
|
||||
},
|
||||
"time": "2021-01-01T22:21:23+00:00"
|
||||
"time": "2021-01-31T23:07:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v3.2.1",
|
||||
"version": "v3.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "f795ca686d38530045859b0350b5352f7d63447d"
|
||||
"reference": "1f3b7e2c06cc05d42936a8ad508ff1db7975cdc5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/f795ca686d38530045859b0350b5352f7d63447d",
|
||||
"reference": "f795ca686d38530045859b0350b5352f7d63447d",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/1f3b7e2c06cc05d42936a8ad508ff1db7975cdc5",
|
||||
"reference": "1f3b7e2c06cc05d42936a8ad508ff1db7975cdc5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -983,7 +983,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.2-dev"
|
||||
"dev-master": "3.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
@ -1019,7 +1019,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/twigphp/Twig/issues",
|
||||
"source": "https://github.com/twigphp/Twig/tree/v3.2.1"
|
||||
"source": "https://github.com/twigphp/Twig/tree/v3.3.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1031,7 +1031,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-05T15:40:36+00:00"
|
||||
"time": "2021-02-08T09:54:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ulrichsg/getopt-php",
|
||||
|
|
|
@ -14,3 +14,6 @@ define('DB_HOST', '@@host@@');
|
|||
|
||||
/* Database hostname */
|
||||
define('DB_PREFIX', '@@prefix@@');
|
||||
|
||||
/* Sentry options */
|
||||
define('SENTRY_CSP_REPORT_URI', '');
|
||||
|
|
|
@ -522,6 +522,10 @@ class user
|
|||
public function login($name, $password, $remember_me, $twofa=null)
|
||||
{
|
||||
$this->tools->profiler_start("Login");
|
||||
if(isset($_REQUEST["apiKey"]) && !empty($api_key_row = $this->database->exec("SELECT * FROM `%PREFIX%_api_keys` WHERE apikey = :apikey;", true, [":apikey" => $_REQUEST["apiKey"]]))){
|
||||
$user_id = $this->database->exec("SELECT * FROM `%PREFIX%_profiles` WHERE id = :id;", true, [":id" => $api_key_row[0]["user"]])[0]["id"];
|
||||
$this->auth->admin()->logInAsUserById($user_id);
|
||||
}
|
||||
if(!empty($name)) {
|
||||
if(!empty($password)) {
|
||||
try {
|
||||
|
@ -741,7 +745,11 @@ function init_class($enableDebugger=true, $headers=true)
|
|||
$translations = new translations($database->getOption("force_language"));
|
||||
}
|
||||
if($headers) {
|
||||
$csp = "default-src 'self' data: *.tile.openstreetmap.org nominatim.openstreetmap.org; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data: *.tile.openstreetmap.org; object-src; style-src 'self' 'unsafe-inline'; require-trusted-types-for 'style';";
|
||||
//TODO adding require-trusted-types-for 'script';
|
||||
$csp = "default-src 'self' data: *.tile.openstreetmap.org nominatim.openstreetmap.org; connect-src 'self' *.sentry.io; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data: *.tile.openstreetmap.org; object-src; style-src 'self' 'unsafe-inline';";
|
||||
if(defined(SENTRY_CSP_REPORT_URI) && SENTRY_CSP_REPORT_URI !== false){
|
||||
$csp .= " report-uri ".SENTRY_CSP_REPORT_URI.";";
|
||||
}
|
||||
header("Content-Security-Policy: $csp");
|
||||
header("X-Content-Security-Policy: $csp");
|
||||
header("X-WebKit-CSP: $csp");
|
||||
|
|
|
@ -111,9 +111,6 @@ if (file_exists('../vendor/autoload.php')) {
|
|||
die("Please install composer and run composer install");
|
||||
}
|
||||
|
||||
define('NAME', 'AllertaVVF');
|
||||
define('VERSION', '0.1-alpha');
|
||||
|
||||
function checkConnection($host, $user, $password, $database, $return=false)
|
||||
{
|
||||
try{
|
||||
|
@ -232,6 +229,9 @@ define( 'DB_HOST', '<?php echo $host; ?>' );<br>
|
|||
<br>
|
||||
/* Database hostname */<br>
|
||||
define( 'DB_PREFIX', '<?php echo $prefix; ?>' );<br>
|
||||
<br>
|
||||
/* Sentry options */<br>
|
||||
define('SENTRY_CSP_REPORT_URI', '');<br>
|
||||
</code>
|
||||
</ul>
|
||||
<p><?php t("If you're not sure what these terms mean, try contacting your hosting provider. Try providing the following information:"); ?></p>
|
||||
|
@ -671,7 +671,7 @@ function run_cli()
|
|||
|
||||
// show version and quit
|
||||
if ($getopt->getOption('version')) {
|
||||
echo sprintf('%s: %s' . PHP_EOL, NAME, VERSION);
|
||||
echo sprintf('%s: %s' . PHP_EOL, "AllertaVVF", "0.0");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"sentry_enabled": false,
|
||||
"sentry_dsn": "",
|
||||
"sentry_environment": "prod",
|
||||
"sentry_auth_token": "",
|
||||
"sentry_organization": "",
|
||||
"sentry_project": ""
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -11,38 +11,45 @@
|
|||
"author": "",
|
||||
"license": "GPL3",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.12.9",
|
||||
"@babel/plugin-transform-runtime": "^7.12.1",
|
||||
"@babel/preset-env": "^7.12.7",
|
||||
"@fortawesome/fontawesome-free": "^5.15.1",
|
||||
"babel-loader": "^8.2.1",
|
||||
"bootstrap": "^4.5.3",
|
||||
"@babel/core": "^7.12.16",
|
||||
"@babel/plugin-transform-runtime": "^7.12.15",
|
||||
"@babel/preset-env": "^7.12.16",
|
||||
"@fiverr/afterbuild-webpack-plugin": "^1.0.0",
|
||||
"@fortawesome/fontawesome-free": "^5.15.2",
|
||||
"@sentry/browser": "^6.1.0",
|
||||
"@sentry/tracing": "^6.1.0",
|
||||
"@sentry/webpack-plugin": "^1.14.0",
|
||||
"babel-loader": "^8.2.2",
|
||||
"bootstrap": "^4.6.0",
|
||||
"bootstrap-datepicker": "^1.9.0",
|
||||
"bootstrap-toggle": "^2.2.2",
|
||||
"clean-webpack-plugin": "^3.0.0",
|
||||
"copy-webpack-plugin": "^6.3.2",
|
||||
"colors": "^1.4.0",
|
||||
"copy-webpack-plugin": "^6.4.1",
|
||||
"css-loader": "^4.3.0",
|
||||
"expose-loader": "^1.0.2",
|
||||
"expose-loader": "^1.0.3",
|
||||
"file-loader": "^6.2.0",
|
||||
"font-awesome": "^4.7.0",
|
||||
"glob": "^7.1.6",
|
||||
"howler": "^2.2.1",
|
||||
"jquery": "^3.5.1",
|
||||
"jquery-pjax": "^2.0.1",
|
||||
"leaflet": "^1.7.1",
|
||||
"leaflet.locatecontrol": "^0.72.0",
|
||||
"leaflet.locatecontrol": "^0.72.2",
|
||||
"popper.js": "^1.16.1",
|
||||
"sass": "^1.29.0",
|
||||
"sass-loader": "^10.1.0",
|
||||
"sass": "^1.32.7",
|
||||
"sass-loader": "^10.1.1",
|
||||
"style-loader": "^1.3.0",
|
||||
"time-input-polyfill": "^1.0.9",
|
||||
"uglifyjs-webpack-plugin": "^2.2.0",
|
||||
"webpack": "^4.44.2",
|
||||
"webpack-assets-manifest": "^3.1.1",
|
||||
"webpack-cli": "^4.2.0",
|
||||
"webpack-merge": "^5.4.0"
|
||||
"webpack-inject-plugin": "^1.5.5",
|
||||
"webpack-merge": "^5.7.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"speed-measure-webpack-plugin": "^1.3.3",
|
||||
"webpack-bundle-analyzer": "^4.1.0"
|
||||
"speed-measure-webpack-plugin": "^1.4.2",
|
||||
"webpack-bundle-analyzer": "^4.4.0",
|
||||
"webpack-cli": "^4.5.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ $( document ).ajaxError(function(event, xhr, settings, error) {
|
|||
|
||||
if (getCookie("authenticated")) {
|
||||
var installServiceWorker = true;
|
||||
if(window.skipServiceWorkerInstallation !== undefined){ //if you want to disable SW for ex via greasyfork userscript
|
||||
if(window.skipServiceWorkerInstallation !== undefined){ //if you want to disable SW for example via GreasyFork userscript
|
||||
installServiceWorker = false;
|
||||
}
|
||||
if(getCookie("disableServiceWorkerInstallation")){
|
||||
|
@ -102,7 +102,7 @@ function fillTable(data, replaceLatLngWithMap=false){
|
|||
row.id = "row-"+row_num;
|
||||
$.each(item, function(cell_num, i) {
|
||||
if(i !== null){
|
||||
if(replaceLatLngWithMap && i.match(/[+-]?\d+([.]\d+)?[;][+-]?\d+([.]\d+)?/gm)){ /* TODO: add credits */
|
||||
if(replaceLatLngWithMap && i.match(/[+-]?\d+([.]\d+)?[;][+-]?\d+([.]\d+)?/gm)){ /* credits to @visoom https://github.com/visoom */
|
||||
let lat = i.split(";")[0];
|
||||
let lng = i.split(";")[1];
|
||||
let mapDiv = document.createElement("div");
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
import * as Sentry from "@sentry/browser";
|
||||
import { Integrations } from "@sentry/tracing";
|
||||
|
||||
if(process.env.config && process.env.config.sentry_enabled){
|
||||
if('connection' in navigator && navigator.connection.saveData){
|
||||
console.log("Skipping Sentry init because data save is enabled");
|
||||
} else {
|
||||
Sentry.init({
|
||||
dsn: process.env.config.sentry_dsn,
|
||||
integrations: [new Integrations.BrowserTracing()],
|
||||
tracesSampleRate: 0.6,
|
||||
release: "allerta-vvf-frontend@"+process.env.GIT_VERSION,
|
||||
environment: process.env.config.sentry_environment
|
||||
});
|
||||
}
|
||||
}
|
|
@ -1,14 +1,58 @@
|
|||
const { merge } = require('webpack-merge');
|
||||
const common = require('./webpack.common.js');
|
||||
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
|
||||
const SentryWebpackPlugin = require("@sentry/webpack-plugin");
|
||||
const AfterBuildPlugin = require('@fiverr/afterbuild-webpack-plugin');
|
||||
const child_process = require('child_process');
|
||||
const InjectPlugin = require('webpack-inject-plugin').default;
|
||||
const colors = require('colors/safe');
|
||||
const fs = require('fs');
|
||||
const glob = require('glob');
|
||||
|
||||
function git(command) {
|
||||
return child_process.execSync(`git ${command}`, { encoding: 'utf8' }).trim();
|
||||
}
|
||||
var webpack = require('webpack');
|
||||
|
||||
module.exports = merge(common, {
|
||||
if (!fs.existsSync("config.json")) {
|
||||
fs.copyFileSync("config_sample.json", "config.json");
|
||||
}
|
||||
|
||||
const removeSourceMapUrlAfterBuild = () => {
|
||||
//based on @rbarilani https://github.com/rbarilani/remove-source-map-url-webpack-plugin
|
||||
|
||||
glob("./dist/*.js", function (er, files) {
|
||||
let countMatchAssets = 0;
|
||||
files.push("../sw.js");
|
||||
//console.log(files);
|
||||
files.forEach((key) => {
|
||||
countMatchAssets += 1;
|
||||
let asset = fs.readFileSync(key, 'utf8');
|
||||
let source = asset.split("//# sourceMappingURL=")[0].replace(/\n$/, "");
|
||||
fs.writeFileSync(key, source);
|
||||
});
|
||||
|
||||
if (countMatchAssets) {
|
||||
console.log(colors.green(`remove-source-map-url: ${countMatchAssets} asset(s) processed`));
|
||||
}
|
||||
});
|
||||
glob("./dist/*.js.map", function (er, files) {
|
||||
files.push("../sw.js.map");
|
||||
files.forEach((key) => {
|
||||
fs.unlinkSync(key);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
var config_file = require('./config.json');
|
||||
const sentry_enabled = config_file.sentry_enabled &&
|
||||
config_file.sentry_auth_token &&
|
||||
config_file.sentry_organization &&
|
||||
config_file.sentry_project;
|
||||
|
||||
var prod_config = {
|
||||
mode: 'production',
|
||||
devtool: false,
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
|
@ -24,20 +68,59 @@ module.exports = merge(common, {
|
|||
}
|
||||
]
|
||||
},
|
||||
plugins: [
|
||||
new webpack.EnvironmentPlugin({
|
||||
GIT_VERSION: git('describe --always'),
|
||||
GIT_AUTHOR_DATE: git('log -1 --format=%aI'),
|
||||
BUNDLE_DATE: Date.now(),
|
||||
BUNDLE_MODE: 'production'
|
||||
})
|
||||
],
|
||||
plugins: [],
|
||||
optimization: {
|
||||
mergeDuplicateChunks: true,
|
||||
minimize: true,
|
||||
minimizer: [new UglifyJsPlugin({
|
||||
parallel: true,
|
||||
extractComments: true
|
||||
extractComments: true,
|
||||
sourceMap: sentry_enabled ? true : false
|
||||
})]
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = (env) => {
|
||||
//run webpack build with '--env sentry_environment=custom-sentry-env' to replace Sentry environment
|
||||
if(env.sentry_environment){
|
||||
console.log(colors.green("INFO using custom sentry_environment "+env.sentry_environment));
|
||||
config_file.sentry_environment = env.sentry_environment;
|
||||
}
|
||||
if(!config_file.sentry_environment){
|
||||
config_file.sentry_environment = "prod";
|
||||
}
|
||||
|
||||
if(sentry_enabled){
|
||||
prod_config.plugins.push(
|
||||
new webpack.SourceMapDevToolPlugin({
|
||||
filename: '[file].map'
|
||||
}),
|
||||
|
||||
new SentryWebpackPlugin({
|
||||
authToken: config_file.sentry_auth_token,
|
||||
org: config_file.sentry_organization,
|
||||
project: config_file.sentry_project,
|
||||
urlPrefix: '~/dist',
|
||||
include: './dist',
|
||||
}),
|
||||
|
||||
new AfterBuildPlugin(removeSourceMapUrlAfterBuild),
|
||||
|
||||
new InjectPlugin(function() {
|
||||
return "import './src/sentry.js';";
|
||||
},{ entryName: 'main' })
|
||||
);
|
||||
console.log(colors.green("INFO Sentry Webpack plugins enabled"));
|
||||
}
|
||||
|
||||
prod_config.plugins.push(
|
||||
new webpack.EnvironmentPlugin({
|
||||
GIT_VERSION: git('describe --always'),
|
||||
GIT_AUTHOR_DATE: git('log -1 --format=%aI'),
|
||||
BUNDLE_DATE: Date.now(),
|
||||
BUNDLE_MODE: 'production',
|
||||
config: config_file
|
||||
})
|
||||
);
|
||||
return merge(common, prod_config);
|
||||
}
|
Loading…
Reference in New Issue