From 083db2f3b6935808d9b1b2e5815c212b4e6836b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Wed, 17 May 2023 09:49:22 +0200 Subject: [PATCH] chore(webpack): Move to shared code for entrypoints and use webpack serve public path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- src/init-calendar.js | 2 ++ src/init-card-reference.js | 2 ++ src/init-collections.js | 5 +---- src/init-talk.js | 5 +---- src/main.js | 8 +------- src/shared-init.js | 12 ++++++++++++ webpack.js | 9 +++++++-- 7 files changed, 26 insertions(+), 17 deletions(-) create mode 100644 src/shared-init.js diff --git a/src/init-calendar.js b/src/init-calendar.js index 51cc96c82..6c603432e 100644 --- a/src/init-calendar.js +++ b/src/init-calendar.js @@ -23,6 +23,8 @@ import { subscribe } from '@nextcloud/event-bus' import { generateUrl } from '@nextcloud/router' +import './shared-init.js' + subscribe('calendar:handle-todo-click', ({ calendarId, taskId }) => { const deckAppPrefix = 'app-generated--deck--board-' if (calendarId.startsWith(deckAppPrefix)) { diff --git a/src/init-card-reference.js b/src/init-card-reference.js index 618a9065d..c700a71d0 100644 --- a/src/init-card-reference.js +++ b/src/init-card-reference.js @@ -26,6 +26,8 @@ import CardReferenceWidget from './views/CardReferenceWidget.vue' import { translate, translatePlural } from '@nextcloud/l10n' +import './shared-init.js' + Vue.prototype.t = translate Vue.prototype.n = translatePlural Vue.prototype.OC = window.OC diff --git a/src/init-collections.js b/src/init-collections.js index f26565ee4..a3f8ddd91 100644 --- a/src/init-collections.js +++ b/src/init-collections.js @@ -26,10 +26,7 @@ import './../css/collections.css' import FileSharingPicker from './views/FileSharingPicker.js' import { buildSelector } from './helpers/selector.js' -// eslint-disable-next-line -__webpack_nonce__ = btoa(OC.requestToken); -// eslint-disable-next-line -__webpack_public_path__ = OC.linkTo('deck', 'js/'); +import './shared-init.js' Vue.prototype.t = t Vue.prototype.n = n diff --git a/src/init-talk.js b/src/init-talk.js index 943cbe22b..7d798ad97 100644 --- a/src/init-talk.js +++ b/src/init-talk.js @@ -27,10 +27,7 @@ import CardCreateDialog from './CardCreateDialog.vue' import { buildSelector } from './helpers/selector.js' import './init-collections.js' -// eslint-disable-next-line -__webpack_nonce__ = btoa(OC.requestToken); -// eslint-disable-next-line -__webpack_public_path__ = OC.linkTo('deck', 'js/'); +import './shared-init.js' Vue.prototype.t = t Vue.prototype.n = n diff --git a/src/main.js b/src/main.js index 2d1a28132..29cb97126 100644 --- a/src/main.js +++ b/src/main.js @@ -25,22 +25,16 @@ import router from './router.js' import store from './store/main.js' import { sync } from 'vuex-router-sync' import { translate, translatePlural } from '@nextcloud/l10n' -import { generateFilePath } from '@nextcloud/router' import { showError } from '@nextcloud/dialogs' import { subscribe } from '@nextcloud/event-bus' import { Tooltip } from '@nextcloud/vue' import ClickOutside from 'vue-click-outside' +import './shared-init.js' import './models/index.js' // the server snap.js conflicts with vertical scrolling so we disable it document.body.setAttribute('data-snap-ignore', 'true') -// eslint-disable-next-line -__webpack_nonce__ = btoa(OC.requestToken) -if (!process.env.HOT) { - // eslint-disable-next-line - __webpack_public_path__ = generateFilePath('deck', '', 'js/') -} sync(store, router) Vue.prototype.t = translate diff --git a/src/shared-init.js b/src/shared-init.js new file mode 100644 index 000000000..9752aee3a --- /dev/null +++ b/src/shared-init.js @@ -0,0 +1,12 @@ +import { generateFilePath } from '@nextcloud/router' + +// eslint-disable-next-line +__webpack_nonce__ = btoa(OC.requestToken) + +if (!process.env.WEBPACK_SERVE) { + // eslint-disable-next-line + __webpack_public_path__ = generateFilePath('deck', '', 'js/') +} else { + // eslint-disable-next-line + __webpack_public_path__ = 'http://127.0.0.1:3000/' +} diff --git a/webpack.js b/webpack.js index e5fad1012..70721b7f3 100644 --- a/webpack.js +++ b/webpack.js @@ -1,11 +1,11 @@ const webpackConfig = require('@nextcloud/webpack-vue-config') +const webpack = require('webpack') const path = require('path') const ESLintPlugin = require('eslint-webpack-plugin') const StyleLintPlugin = require('stylelint-webpack-plugin') const buildMode = process.env.NODE_ENV -const isDev = buildMode === 'development' -const isDevServer = process.env.WEBPACK_DEV_SERVER; +const isDevServer = process.env.WEBPACK_SERVE webpackConfig.entry = { ...webpackConfig.entry, @@ -18,6 +18,11 @@ webpackConfig.entry = { if (isDevServer) { webpackConfig.output.publicPath = 'http://127.0.0.1:3000/' + webpackConfig.plugins.push( + new webpack.DefinePlugin({ + 'process.env.WEBPACK_SERVE': true, + }) + ) } else { webpackConfig.stats = { context: path.resolve(__dirname, 'src'),