вам нужно избавиться от windows
и document
, используя для строки JS
, которую вы передаете V8Js::executeString
, потому что она ищет document
и window
, но в то время ее не существуети код выполняется на стороне сервера.
В вашем app.js
Сделайте что-то вроде этого:
import axios from 'axios';
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
и на бэкэнде сделайте так:
$rendererSrc =\file_get_contents()(\base_path('node_modules/vue-server-renderer/basic.js'));
$appSrc = file_get_contents()(\public_path('js/entry-server.js'));
$v8Js = new \V8Js();
$v8Js->executeString(
<<<EOT
var process = { env: { VUE_ENV: "server", NODE_ENV: "production" } };
this.global = { process: process };
var url = "path_you_are_hitting";
{$rendererSrc}
{$appSrc}
EOT
);
Надеюсь, это сработает