Как я могу встроить скрипт node_modules на сайт Gatsby? - PullRequest
0 голосов
/ 14 мая 2019

Я хотел бы вставить весь исходный код модуля UMD https://zizzamia.github.io/perfume/ на веб-сайте Gatsby, как я могу прочитать его из каталога node_modules и поместить в <head> документа?

1 Ответ

0 голосов
/ 14 мая 2019

Я придумал следующее решение:

  • установка raw-loader , загрузчик webpack для импорта файл в виде строки
npm install raw-loader --save-dev
  • импортировать мой файл в виде строки
import rawPerfume from 'raw-loader!./node_modules/perfume.js/dist/perfume.umd.min.js';
  • Я создал плагин (просто добавьте plugins/<PLUGIN_NAME> в корень проекта), содержащий gatsby-ssr.js файл (см. Руководство по SSR Гэтсби )
  • затем я установил еще один компонент головы
import React from "react";
export const onRenderBody = ({
  setHeadComponents,
}) => {
  setHeadComponents([
    React.createElement('script', {
      dangerouslySetInnerHTML: {
        __html: rawPerfume.default || rawPerfume
      }
    })
  ]);  
}  

Окончательный код выглядит примерно так (plugins/gatsby-plugin-perfume.js/gatsby-ssr.js file)

import rawPerfume from 'raw-loader!./node_modules/perfume.js/dist/perfume.umd.min.js';

import React from "react";
export const onRenderBody = ({
  setHeadComponents,
}) => {
  setHeadComponents([
    React.createElement('script', {
      dangerouslySetInnerHTML: {
        __html: rawPerfume.default || rawPerfume
      }
    })
  ]);  
}  

Вы можете увидеть код на плагине gatsby-plugin-perfume.js Я тоже поделился

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...