diff --git a/src/main/webapp/build/webpack.server.config.js b/src/main/webapp/build/webpack.server.config.js index 847e5ba..8efa4c3 100644 --- a/src/main/webapp/build/webpack.server.config.js +++ b/src/main/webapp/build/webpack.server.config.js @@ -5,8 +5,10 @@ const base = require("./webpack.base.config"); const serverConfig = merge(base.webpackCnfig, { entry: "./src/entry-server.js", output: { - filename: "server-bundle.js" - } + filename: "server-bundle.js", + libraryTarget: "commonjs2" + }, + externals: Object.keys(require("../package.json").dependencies) }); module.exports = serverConfig; diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json index 4ae98e7..b56ccd6 100644 --- a/src/main/webapp/package.json +++ b/src/main/webapp/package.json @@ -32,6 +32,7 @@ "html-webpack-plugin": "^3.2.0", "rimraf": "^2.6.3", "vue-loader": "^15.6.2", + "vue-server-renderer": "^2.6.6", "vue-template-compiler": "^2.6.6", "webpack": "^4.29.3", "webpack-cli": "^3.2.3", diff --git a/src/main/webapp/server.js b/src/main/webapp/server.js index 1eb06ce..8ba3022 100644 --- a/src/main/webapp/server.js +++ b/src/main/webapp/server.js @@ -1 +1,25 @@ +const renderVueComponentToString = require("vue-server-renderer/basic.js"); +const serverBundle = require("./dist/server-bundle"); + console.log("server is running ..."); + +const context = { + url: "/" +}; +const promise = serverBundle.default(context); + +promise + .then((resolve, reject) => { + console.log("promise resolved"); + const vm = resolve; + renderVueComponentToString(vm, (err, res) => { + if (err) { + console.log(err); + return; + } + console.log(res); + }); + }) + .catch(rejected => { + console.log(rejected); + }); diff --git a/src/main/webapp/src/entry-server.js b/src/main/webapp/src/entry-server.js index ac61e87..f757cf7 100644 --- a/src/main/webapp/src/entry-server.js +++ b/src/main/webapp/src/entry-server.js @@ -4,6 +4,7 @@ import { createApp } from "./app"; // return a Promise that resolves to the app instance. export default context => { return new Promise((resolve, reject) => { + console.log("cntext=>", context); const { app } = createApp(context); resolve(app); }); diff --git a/src/main/webapp/yarn.lock b/src/main/webapp/yarn.lock index 354a509..f7da8a4 100644 --- a/src/main/webapp/yarn.lock +++ b/src/main/webapp/yarn.lock @@ -345,6 +345,11 @@ ansi-regex@^4.0.0: resolved "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9" integrity sha1-cN55Ht8CFATD/WFaqJEYrgQy5ak= +ansi-styles@^2.2.1: + version "2.2.1" + resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -746,6 +751,17 @@ camelcase@^5.0.0: resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" integrity sha1-AylVJ9WL081Kp1Nj81sujZe+L0I= +chalk@^1.1.3: + version "1.1.3" + resolved "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1445,7 +1461,7 @@ escape-html@~1.0.3: resolved "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -2091,6 +2107,13 @@ handle-thing@^2.0.0: resolved "http://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" integrity sha1-DgOWlf9QyT/CiFV9aW88HcZ3Z1Q= +has-ansi@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + has-flag@^3.0.0: version "3.0.0" resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2790,6 +2813,31 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +lodash._reinterpolate@~3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash.template@^4.4.0: + version "4.4.0" + resolved "http://registry.npm.taobao.org/lodash.template/download/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + integrity sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A= + dependencies: + lodash._reinterpolate "~3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.1.0" + resolved "http://registry.npm.taobao.org/lodash.templatesettings/download/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + integrity sha1-K01OlbpEDZFf8IvImeRVNmZxMxY= + dependencies: + lodash._reinterpolate "~3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "http://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.5: version "4.17.11" resolved "http://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" @@ -3502,6 +3550,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "http://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-parse@^1.0.6: + version "1.0.6" + resolved "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= + path-to-regexp@0.1.7: version "0.1.7" resolved "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -3911,6 +3964,13 @@ resolve-url@^0.2.1: resolved "http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= +resolve@^1.2.0: + version "1.10.0" + resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" + integrity sha1-O9qur0XMB/N1ZW39LlTtCBCxAbo= + dependencies: + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -4027,7 +4087,7 @@ send@0.16.2: range-parser "~1.2.0" statuses "~1.4.0" -serialize-javascript@^1.4.0: +serialize-javascript@^1.3.0, serialize-javascript@^1.4.0: version "1.6.1" resolved "http://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" integrity sha1-TR9pfsSUKahHym9EKip1USbE2Hk= @@ -4203,6 +4263,11 @@ source-map-url@^0.4.0: resolved "http://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= +source-map@0.5.6: + version "0.5.6" + resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= + source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.0: version "0.5.7" resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -4381,6 +4446,11 @@ strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: resolved "http://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +supports-color@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -4743,6 +4813,20 @@ vue-router@^3.0.2: resolved "http://registry.npm.taobao.org/vue-router/download/vue-router-3.0.2.tgz#dedc67afe6c4e2bc25682c8b1c2a8c0d7c7e56be" integrity sha1-3txnr+bE4rwlaCyLHCqMDXx+Vr4= +vue-server-renderer@^2.6.6: + version "2.6.6" + resolved "http://registry.npm.taobao.org/vue-server-renderer/download/vue-server-renderer-2.6.6.tgz#a2b1174cf1914817147b34789cc1a6baa0672aa1" + integrity sha1-orEXTPGRSBcUezR4nMGmuqBnKqE= + dependencies: + chalk "^1.1.3" + hash-sum "^1.0.2" + he "^1.1.0" + lodash.template "^4.4.0" + lodash.uniq "^4.5.0" + resolve "^1.2.0" + serialize-javascript "^1.3.0" + source-map "0.5.6" + vue-style-loader@^4.1.0: version "4.1.2" resolved "http://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8"