Использование в не-Node.js окружениях
По умолчанию сборка vue-server-renderer
предполагает использование Node.js окружения, что делает её непригодной для использования в альтернативных JavaScript окружениях, таких как PHP V8Js (opens new window) или Oracle Nashorn (opens new window). С версии 2.5+ мы предоставляем сборку в vue-server-renderer/basic.js
, которая в значительной степени менее зависима от окружения, что делает её пригодной для использования в окружениях, упомянутых выше.
Для обоих вариантов необходимо сначала подготовить окружение создав моки для объектов global
и process
, с переменной process.env.VUE_ENV
установленной в значение "server"
, и переменной process.env.NODE_ENV
установленной в значение "development"
или "production"
.
При использовании Nashorn также может потребоваться предоставить полифил для Promise
или setTimeout
с использованием нативных таймеров Java.
Пример использования в php-v8js:
<?php
$vue_source = file_get_contents('/path/to/vue.js');
$renderer_source = file_get_contents('/path/to/vue-server-renderer/basic.js');
$app_source = file_get_contents('/path/to/app.js');
$v8 = new V8Js();
$v8->executeString('var process = { env: { VUE_ENV: "server", NODE_ENV: "production" }}; this.global = { process: process };');
$v8->executeString($vue_source);
$v8->executeString($renderer_source);
$v8->executeString($app_source);
?>
// app.js
var vm = new Vue({
template: `<div>{{ msg }}</div>`,
data: {
msg: 'hello'
}
})
// предоставляется `vue-server-renderer/basic.js`
renderVueComponentToString(vm, (err, res) => {
print(res)
})
← Стриминг