NUXT - Werid поведение веб-пакета при попытке требовать пакет только для сервера - PullRequest
0 голосов
/ 17 января 2020

Итак ...

То, что я пытаюсь сделать sh, - это запрос пакета только на сервере; const jsdom = require("jsdom");

Почему? Потому что это пакет, предназначенный для узла. Мне нужно проанализировать строку для элементов DOM, чтобы получить некоторую информацию.

У меня есть nuxtServerInit, где я пытаюсь сделать это

Если я сделаю это таким образом, это работает:

async nuxtServerInit (store, context) {
....
   if (process.server) {
      const jsdom = require("jsdom");
   }
}

Но я пытаюсь сделать код чище, создать пользовательский сервис.

что-то вроде:

import ServerInitActions from '~/helpers/InitActions/Server';
nuxtServerInit (store, context) {
....
   if (process.server) {
      const serverInitActions = new ServerInitActions(store, context).run();
   }
}

А потом внутри serverInitActionsModule внутри метод запуска, если я сделаю const jsdom = require("jsdom"); ..... он не работает?!

Модуль не найден: Ошибка: не удается разрешить 'fs' в 'C: \ Проекты \ garden-front-ssr \ node_modules \ jsdom \ lib \ jsdom \ browser \ resources '

Если внутри ServerInitActions я сделаю

if (process.server) {
   const jsdom = require("jsdom");
}

Тогда снова заработает? ???? Все обещания в порядке, не беспокойтесь об этом. Похоже, Webpack как-то обрабатывает это if заявление? Кто-нибудь?

...