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-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-dashboard.js b/src/init-dashboard.js index 18be0c35b..9b579fb91 100644 --- a/src/init-dashboard.js +++ b/src/init-dashboard.js @@ -22,12 +22,9 @@ import './css/dashboard.scss' -const debug = process.env.NODE_ENV !== 'production' +import './shared-init.js' -// eslint-disable-next-line -__webpack_nonce__ = btoa(OC.requestToken); -// eslint-disable-next-line -__webpack_public_path__ = OC.linkTo('deck', 'js/'); +const debug = process.env.NODE_ENV !== 'production' document.addEventListener('DOMContentLoaded', () => { OCA.Dashboard.register('deck', async (el) => { diff --git a/src/init-reference.js b/src/init-reference.js index 08b804742..fa983ebcb 100644 --- a/src/init-reference.js +++ b/src/init-reference.js @@ -28,6 +28,8 @@ import CommentReferenceWidget from './views/CommentReferenceWidget.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-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 8f519b11e..bfb7d761c 100644 --- a/src/main.js +++ b/src/main.js @@ -25,23 +25,17 @@ 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' import './sessions.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 83c5e4bde..2b32457bb 100644 --- a/webpack.js +++ b/webpack.js @@ -1,9 +1,9 @@ const webpackConfig = require('@nextcloud/webpack-vue-config') +const webpack = require('webpack') const path = require('path') 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, @@ -16,6 +16,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'),