Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordizzy <diosmosis@users.noreply.github.com>2021-10-15 09:08:14 +0300
committerGitHub <noreply@github.com>2021-10-15 09:08:14 +0300
commit2f80606b1db3caaeb4195ff7cd0bf949b2154968 (patch)
tree3ebe7333835309b135395a3b31496f9bee93c9ed /vue.config.js
parent71c98f36ec238b6d688065963f196c387850da53 (diff)
[Vue] utility function for creating angularjs adapters (#18146)4.6.0-b1
* incomplete conversion * get ajax helper migration to work * delete old periods.spec.js * remove global-ajax-queue.js file * migrate piwik service and test (w/ hacks to get it the test to work) * rebuild and remove old files + get tests to pass * unfinished commit * return jqxhr object so promise api can be used * move hasBlockedContent and deprecate piwikApi service * remove alert files * convert piwikHelper.spec.js * in new vue code, use "Matomo" everywhere possible instead of "piwik" and rebuild vue files * add another needed export line in command * include polyfills after vue so we can add to vue engine * Add HTML sanitizer for use w/ migrating ng-bind-html uses. * fix broken merge, rebuild js, fix issue in build command * add sanitize to other components for consistency (will be replaced by utility function eventually) * migrate matomo-dialog, fix issue where vue:build --watch did not correctly watch all plugin files, fix path issue in webpack externals, add vue matomo dialog use example to ExampleVue * update expected screenshot * create initial createAngularJsAdapter generic function and use for AcitivityIndicator * fix webpack chunk loading issue that occurs only on production (since the chunk is not stored in the same directory as the merged asset JS) * use adapter utility for Alert * use adapter function for matomo-dialog (even though the mapping becomes more complex) * fix unit tests
Diffstat (limited to 'vue.config.js')
-rw-r--r--vue.config.js31
1 files changed, 29 insertions, 2 deletions
diff --git a/vue.config.js b/vue.config.js
index ef7b9a550a..4755a75fff 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -6,7 +6,7 @@ const pluginExternals = scanPluginExternals();
function scanPluginExternals() {
const pluginExternals = {};
- const pluginsDir = path.join(__dirname, '..', '..');
+ const pluginsDir = path.join(__dirname, 'plugins');
for (let pluginName of fs.readdirSync(pluginsDir)) {
const vuePackageFolder = path.join(pluginsDir, pluginName, 'vue', 'src');
if (!fs.existsSync(vuePackageFolder)) {
@@ -19,9 +19,36 @@ function scanPluginExternals() {
return pluginExternals;
}
+if (!process.env.MATOMO_CURRENT_PLUGIN) {
+ console.log("The MATOMO_CURRENT_PLUGIN environment variable is not set!");
+}
+
+const publicPath = `plugins/${process.env.MATOMO_CURRENT_PLUGIN}/vue/dist/`;
+
+// hack to get publicPath working for lib build target (see https://github.com/vuejs/vue-cli/issues/4896#issuecomment-569001811)
+function PublicPathWebpackPlugin () {}
+
+PublicPathWebpackPlugin.prototype.apply = function (compiler) {
+ compiler.hooks.entryOption.tap('PublicPathWebpackPlugin', (context, entry) => {
+ if (entry['module.common']) {
+ entry['module.common'] = path.resolve(__dirname, './src/main.js');
+ }
+ if (entry['module.umd']) {
+ entry['module.umd'] = path.resolve(__dirname, './src/main.js');
+ }
+ if (entry['module.umd.min']) {
+ entry['module.umd.min'] = path.resolve(__dirname, './src/main.js');
+ }
+ });
+ compiler.hooks.beforeRun.tap('PublicPathWebpackPlugin', (compiler) => {
+ compiler.options.output.publicPath = publicPath;
+ });
+};
+
module.exports = {
- publicPath: "",
+ publicPath,
chainWebpack: config => {
+ config.plugin().use(PublicPathWebpackPlugin);
config.externals({
'tslib': 'tslib',
...pluginExternals,