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

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--package-lock.json66
-rw-r--r--package.json2
-rw-r--r--src/EditorFactory.js2
-rw-r--r--src/components/EditorWrapper.vue12
-rw-r--r--src/components/FilesEditor.vue2
-rw-r--r--src/components/PublicFilesEditor.vue2
-rw-r--r--src/helpers/files.js2
-rw-r--r--src/main.js4
-rw-r--r--src/public.js4
-rw-r--r--webpack.common.js20
11 files changed, 96 insertions, 21 deletions
diff --git a/.gitignore b/.gitignore
index 1b743be2a..08a3321e1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
-js/
build/
\.idea/
node_modules/
diff --git a/package-lock.json b/package-lock.json
index 5917e8658..d78343d33 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1482,6 +1482,12 @@
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.2.2.tgz",
"integrity": "sha512-5VHykhxgUat7dvRWGw52Tk55SWjuZDpDO7PKDhfcLTFrD1cjbTtFFnWeJc0BfoqB2AUjfHXRoMdnqbFRGmnPVQ=="
},
+ "@types/anymatch": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
+ "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==",
+ "dev": true
+ },
"@types/babel__core": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.2.tgz",
@@ -1608,6 +1614,29 @@
"integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==",
"dev": true
},
+ "@types/tapable": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.4.tgz",
+ "integrity": "sha512-78AdXtlhpCHT0K3EytMpn4JNxaf5tbqbLcbIRoQIHzpTIyjpxLQKRoxU55ujBXAtg3Nl2h/XWvfDa9dsMOd0pQ==",
+ "dev": true
+ },
+ "@types/uglify-js": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.0.4.tgz",
+ "integrity": "sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ==",
+ "dev": true,
+ "requires": {
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
"@types/unist": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz",
@@ -1635,6 +1664,27 @@
"@types/unist": "*"
}
},
+ "@types/webpack": {
+ "version": "4.4.35",
+ "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.4.35.tgz",
+ "integrity": "sha512-kf+mn/+CB4HsFb+Rz0QBRlo8nNC9LFhwqeK5xxhd3FEPRWJv6MFVnljKV5ARac56+syO8vIhq+nGt860+3wx7A==",
+ "dev": true,
+ "requires": {
+ "@types/anymatch": "*",
+ "@types/node": "*",
+ "@types/tapable": "*",
+ "@types/uglify-js": "*",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
"@types/yargs": {
"version": "12.0.12",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-12.0.12.tgz",
@@ -3332,6 +3382,16 @@
}
}
},
+ "clean-webpack-plugin": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz",
+ "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==",
+ "dev": true,
+ "requires": {
+ "@types/webpack": "^4.4.31",
+ "del": "^4.1.1"
+ }
+ },
"cli-cursor": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
@@ -10363,9 +10423,9 @@
"integrity": "sha512-EcIqhBtS679fZ0jgl20mkGEV5z5OxJiN7QNb+G/UIVST48bnCYDk0Ds5G5vVdi6cpn3dIXAGWgvyvz8jP2aRqg=="
},
"prosemirror-view": {
- "version": "1.9.10",
- "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.9.10.tgz",
- "integrity": "sha512-jdRLg19sdcxgKUEaH61LjzIy6MUSQmDsU2OnNGvjSbl5UgZNMg+fWkjGqWDd+llGdh1DLaM0ItBHfHd9OeZA+Q==",
+ "version": "1.9.12",
+ "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.9.12.tgz",
+ "integrity": "sha512-og0JxRtce/hsg+61aPgCasfQtkqWYKuWmunU8H4+194AUpaYWg4ZmLNY9qWjfN7XKXoEtV4vPOUJ5RrYVijGjw==",
"requires": {
"prosemirror-model": "^1.1.0",
"prosemirror-state": "^1.0.0",
diff --git a/package.json b/package.json
index e742d544c..0d5ae9e9f 100644
--- a/package.json
+++ b/package.json
@@ -28,6 +28,7 @@
"nextcloud-server": "^0.15.10",
"nextcloud-vue": "^0.11.5",
"prosemirror-markdown": "^1.3.1",
+ "prosemirror-view": "^1.9.12",
"tiptap": "^1.23.2",
"tiptap-extensions": "^1.24.2",
"v-tooltip": "^2.0.2",
@@ -53,6 +54,7 @@
"babel-jest": "^24.8.0",
"babel-loader": "^8.0.6",
"browserslist-config-nextcloud": "0.0.1",
+ "clean-webpack-plugin": "^3.0.0",
"css-loader": "^3.0.0",
"eslint": "^5.16.0",
"eslint-config-standard": "^12.0.0",
diff --git a/src/EditorFactory.js b/src/EditorFactory.js
index 32fbf12be..901c4d3db 100644
--- a/src/EditorFactory.js
+++ b/src/EditorFactory.js
@@ -45,7 +45,7 @@ const loadSyntaxHighlight = async(language) => {
let modules = {}
for (let i = 0; i < languages.length; i++) {
try {
- const lang = await import('highlight.js/lib/languages/' + languages[i])
+ const lang = await import(/* webpackChunkName: "highlight/[request]" */'highlight.js/lib/languages/' + languages[i])
modules[languages[i]] = lang.default
} catch (e) {
// No matching highlighing found, fallback to none
diff --git a/src/components/EditorWrapper.vue b/src/components/EditorWrapper.vue
index f9edfa48b..3a80a4167 100644
--- a/src/components/EditorWrapper.vue
+++ b/src/components/EditorWrapper.vue
@@ -72,12 +72,12 @@ export default {
name: 'EditorWrapper',
components: {
EditorContent,
- MenuBar: () => import('./MenuBar'),
- MenuBubble: () => import('./MenuBubble'),
- ReadOnlyEditor: () => import('./ReadOnlyEditor'),
- CollisionResolveDialog: () => import('./CollisionResolveDialog'),
- GuestNameDialog: () => import('./GuestNameDialog'),
- SessionList: () => import('./SessionList')
+ MenuBar: () => import(/* webpackChunkName: "editor-rich" */'./MenuBar'),
+ MenuBubble: () => import(/* webpackChunkName: "editor-rich" */'./MenuBubble'),
+ ReadOnlyEditor: () => import(/* webpackChunkName: "editor" */'./ReadOnlyEditor'),
+ CollisionResolveDialog: () => import(/* webpackChunkName: "editor" */'./CollisionResolveDialog'),
+ GuestNameDialog: () => import(/* webpackChunkName: "editor-guest" */'./GuestNameDialog'),
+ SessionList: () => import(/* webpackChunkName: "editor-collab" */'./SessionList')
},
directives: {
Tooltip
diff --git a/src/components/FilesEditor.vue b/src/components/FilesEditor.vue
index a21893a90..f951fa7d5 100644
--- a/src/components/FilesEditor.vue
+++ b/src/components/FilesEditor.vue
@@ -29,7 +29,7 @@
export default {
name: 'FilesEditor',
components: {
- EditorWrapper: () => import('./EditorWrapper')
+ EditorWrapper: () => import(/* webpackChunkName: "editor" */'./EditorWrapper')
},
props: {
davPath: {
diff --git a/src/components/PublicFilesEditor.vue b/src/components/PublicFilesEditor.vue
index 6e8cb3b73..b50b937bb 100644
--- a/src/components/PublicFilesEditor.vue
+++ b/src/components/PublicFilesEditor.vue
@@ -34,7 +34,7 @@ export default {
name: 'FilesEditor',
components: {
Modal,
- EditorWrapper: () => import('./EditorWrapper')
+ EditorWrapper: () => import(/* webpackChunkName: "editor" */'./EditorWrapper')
},
props: {
fileId: {
diff --git a/src/helpers/files.js b/src/helpers/files.js
index 40bf6f81c..5358e3483 100644
--- a/src/helpers/files.js
+++ b/src/helpers/files.js
@@ -121,7 +121,7 @@ const registerFileActionFallback = () => {
const file = window.FileList.findFile(filename)
Promise.all([
import('vue'),
- import('./../components/PublicFilesEditor')
+ import(/* webpackChunkName: "files-modal" */'./../components/PublicFilesEditor')
]).then((imports) => {
const path = window.FileList.getCurrentDirectory() + '/' + filename
const Vue = imports[0].default
diff --git a/src/main.js b/src/main.js
index 2f8690185..552d79e41 100644
--- a/src/main.js
+++ b/src/main.js
@@ -5,8 +5,8 @@ __webpack_public_path__ = OC.linkTo('text', 'js/') // eslint-disable-line
if (document.getElementById('maineditor')) {
Promise.all([
- import('vue'),
- import('./components/EditorWrapper')
+ import(/* webpackChunkName: "editor" */'vue'),
+ import(/* webpackChunkName: "editor" */'./components/EditorWrapper')
]).then((imports) => {
const Vue = imports[0].default
Vue.prototype.t = window.t
diff --git a/src/public.js b/src/public.js
index 54a491c3a..32e842725 100644
--- a/src/public.js
+++ b/src/public.js
@@ -22,8 +22,8 @@ documentReady(() => {
if (openMimetypes.indexOf(mimetype) !== -1) {
Promise.all([
- import('vue'),
- import('./components/EditorWrapper')
+ import(/* webpackChunkName: "vendor" */'vue'),
+ import(/* webpackChunkName: "editor" */'./components/EditorWrapper')
]).then((imports) => {
const Vue = imports[0].default
Vue.prototype.t = window.t
diff --git a/webpack.common.js b/webpack.common.js
index 3cd4f2b13..9dab63656 100644
--- a/webpack.common.js
+++ b/webpack.common.js
@@ -1,7 +1,7 @@
const path = require('path');
const VueLoaderPlugin = require('vue-loader/lib/plugin');
const StyleLintPlugin = require('stylelint-webpack-plugin');
-
+const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
entry: {
@@ -13,7 +13,7 @@ module.exports = {
path: path.resolve(__dirname, './js'),
publicPath: '/js/',
filename: '[name].js',
- chunkFilename: '[name].[chunkhash].js'
+ chunkFilename: '[name].js?v=[contenthash]'
},
module: {
rules: [
@@ -57,12 +57,26 @@ module.exports = {
new VueLoaderPlugin(),
new StyleLintPlugin({
files: ['src/**/*.vue', 'src/**/*.scss', 'src/**/*.css']
- })
+ }),
+ new CleanWebpackPlugin()
],
resolve: {
alias: {
vue$: 'vue/dist/vue.esm.js'
},
extensions: ['*', '.js', '.vue', '.json']
+ },
+ optimization: {
+ splitChunks: {
+ cacheGroups: {
+ highlight: {
+ test: /[\\/]node_modules[\\/](hightlight\.js)[\\/]/,
+ },
+ vendors: {
+ test: /[\\/]node_modules[\\/]/,
+ reuseExistingChunk: true
+ }
+ }
+ }
}
};