Попытка написать плагин Vuepress - PullRequest
0 голосов
/ 10 апреля 2020

(do c при написании плагина довольно скудный ...)

ЦЕЛЬ

Создайте плагин для добавления заголовков на страницу.

ПОПЫТКА

Создан плагин в соответствии с руководящими принципами и пример плагина (который предположительно работает ...) для выполнения чего-то подобного.

ПРОБЛЕМА

Плагин не загружается.

config. js

  plugins: [
    [
    'vuepress-plugin-headertags',
    { headerTags: ["<script src='https://cdn.jsdelivr.net/npm/netlify-identity-widget@1.5.2/build/netlify-identity-widget.min.js'></script>"]}
    ]
  ],

(тег вот что я пытаюсь вставить, в данном случае.

индекс PLUGIN. js

const { path } = require('path')
// was:  const { path } = require('@vuepress/shared-utils')
// dunno.  No documentation on this...
// got the current version from the 'default-theme' code

module.exports = (options) => ({
  define () {
    return {
      headerTags: options.headerTags || []
    }
  },
  enhanceAppFiles () {
    return [path.resolve(__dirname, 'enhanceAppFile.js')]
  },
  globalUIComponents: ['HeaderTags']
})

УСТАНОВКА ПЛАГИНА Я опубликовал npm как vuepress-plugin-headertags, а затем установите его с:

yarn add -D vuepress-plugin-headertags

Вот соответствующий пакет. json содержимое:

{
  "name": "vuepress-netlifycms",
  "version": "0.0.0",
  "scripts": {
    "dev": "vuepress dev",
    "build": "vuepress build",
    "debug": "node --nolazy --inspect=9229 /home/rickb/.yarn/bin/vuepress build"
  },
  "devDependencies": {
    "vuepress": "^0.14.8",
    "vuepress-plugin-headertags": "^1.0.3"
  },
  "dependencies": {}
}

УСТАНОВКА VUEPRESS

Я клонировал репозиторий Vuepress из git и сделал ссылку на пряжу, которая делает его доступным глобально. После этого я могу отследить его в отладчике через «отладку» скрипт.

TRACING

I ' Мы следуем исходному коду VP в отладчике и получаем resolvePathPackage() в moduleResolver.js. Неправильный входящий путь:

/home/(...)/VuePress-NetlifyCMS/vuepress-plugin-headertags

Он должен быть:

/home/(...)/VuePress-NetlifyCMS/node_modules/vuepress-plugin-headertags

В любом случае, он не разрешается даже после процесса «нормализации».

БОЛЬШЕ ГЛАЗ

Мне нужно больше взглянуть на это, чтобы помочь мне разобраться. Проект уже запущен на github под именем 'rickbsgu / VuePress-NetlifyCMS. git'. Если вы выполните установку, плагин будет находиться в каталоге проекта в 'node_modules / vuepress-plugin-headertags'

Любые мысли приветствуются

1 Ответ

1 голос
/ 10 апреля 2020

И это работает, сейчас. Две проблемы:

  • Версия, на которой я работал / отладка, отличалась от версии в пакете. json. Существует исполняемый файл vuepress и библиотеки vuepress, который требуется для плагина. Библиотека всегда была более старой версией во время выполнения.

  • Мне нужно было изменить путь импорта в индексе. html с const { path } = require('path') на const { path } = require('@vuepress/shared-utils'). Это моя проблема do c - Я не вижу, чтобы это было зафиксировано нигде.

Спасибо @ Сунь Хаоран за то, что заставили меня посмотреть в нужном месте.

...