Скомпилируйте приложение Vue CLI для простого рендеринга CLI SSR - PullRequest
0 голосов
/ 09 мая 2020

Мне нужно запустить простую команду Node, которая запустит часть моего Vue приложения (конкретный c компонент с введенными пользовательскими данными) через vue-server-renderer / renderToString().

I не требует какого-либо серверного хостинга, маршрутизации или хранения через Vuex, поэтому подавляющее большинство руководств, найденных на https://ssr.vuejs.org/, бесполезны для моих нужд.

My Приложение Vue. js было настроено с помощью vue -cli: оно использует vue -загрузчик, Babel и т. Д. c. и Node не будет читать приложение, поскольку он не может читать ничего, кроме ECMA-262.

Мое дерево:

    - src
    - - components/
    - - - MyComponent.vue. <-- the component I want to render server-side
    - - App.vue            <-- the web-app (useless for this need)
    - - main.js            <-- the web-app main file (useless for this need)
    - - main-cli.js        <-- the cli main file (instantiate MyComponent in new Vue(...) and export as default)
    - .browserlistrc
    - .eslintrc.js
    - .babel-config.js
    - cli.js               <-- the script I want to run with node to generate HTML from MyComponent

Моя проблема в том, что vue -cli обрабатывает все поколение конфигурации webpack, я не знаю, как собрать мой файл main-cli. js, чтобы он мог потребоваться из моего файла CLI.

Мой файл CLI:

    const Vue = require("vue");
    const VueServerRenderer = require("vue-server-renderer");

    const app = new Vue({
      template: `<div>Hello World</div>`, // <-- I cannot import my App since I don't know how to compile it manually
    });

    const renderer = VueServerRenderer.createRenderer();

    renderer
      .renderToString(app)
      .then((html) => {
        console.log(html);
      })
      .catch((err) => {
        console.error(err);
      });

Спасибо за любую помощь.

...