|
Server : Apache System : Linux s1230 5.15.0-139-generic #149~20.04.1 SMP Tue Jul 14 11:21:49 UTC 2026 x86_64 User : p141464 ( 418825) PHP Version : 7.4.33.12 Disable Function : NONE Directory : /html/KMU-CSR-PLANER/wp-content/plugins/matomo/app/plugins/CoreVue/Commands/ |
Upload File : |
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\CoreVue\Commands;
use Piwik\Filesystem;
use Piwik\Plugin\ConsoleCommand;
class BuildPolyfill extends ConsoleCommand
{
protected function configure()
{
$this->setName('vue:build-polyfill');
$this->setDescription('Builds the polyfill UMD.');
$this->addNoValueOption('clear-webpack-cache');
}
public function isEnabled()
{
return \Piwik\Development::isEnabled();
}
protected function doExecute() : int
{
\Piwik\Plugins\CoreVue\Commands\Build::checkVueCliServiceAvailable();
$clearWebpackCache = $this->getInput()->getOption('clear-webpack-cache');
if ($clearWebpackCache) {
$this->clearWebpackCache();
}
$this->createDummyPackageJson();
$dir = PIWIK_INCLUDE_PATH . '/plugins/CoreVue/polyfills';
foreach (['development', 'production'] as $env) {
$command = "cd '{$dir}' && BROWSERSLIST_IGNORE_OLD_DATA=1 FORCE_COLOR=1 " . \Piwik\Plugins\CoreVue\Commands\Build::getVueCliServiceBin() . ' build --target app --mode ' . $env . ' --name MatomoPolyfills ./src/index.ts --dest ./dist';
if ($env == 'production') {
$command .= ' --no-clean';
}
passthru($command);
}
$this->deleteExtraFiles();
return self::SUCCESS;
}
private function createDummyPackageJson()
{
$packageJson = file_get_contents(PIWIK_INCLUDE_PATH . '/package.json');
$packageJson = json_decode($packageJson, \true);
$dummyPackageJson = ['name' => '@matomo/polyfills', 'version' => '1.0.0', 'description' => 'dummy package.json required for vue compilation in subdirectory', 'devDependencies' => $packageJson['devDependencies']];
$dummyPackageJson = json_encode($dummyPackageJson, \JSON_PRETTY_PRINT);
file_put_contents(PIWIK_INCLUDE_PATH . '/plugins/CoreVue/polyfills/package.json', $dummyPackageJson);
}
private function deleteExtraFiles()
{
@unlink(PIWIK_INCLUDE_PATH . "/plugins/CoreVue/polyfills/dist/index.html");
}
private function clearWebpackCache()
{
$path = PIWIK_INCLUDE_PATH . '/plugins/CoreVue/polyfills/node_modules/.cache';
Filesystem::unlinkRecursive($path, \true);
}
}