Используйте Semantic UI с рабочими пространствами Lerna и пряжи - PullRequest
0 голосов
/ 12 мая 2019

Установщик Semantic UI (и Fomantic UI) (как известно?) Не поддерживает пряжу из-за своего интерактивного сценария постинсталляции. Даже при "autoInstall": true в semantic.json пряжа будет разрываться при первой установке.

Это затрудняет сохранение тематической установки Semantic UI в отдельном пакете в монорепорте Lerna при использовании рабочих пространств. Даже если --ignore-scripts будет добавлено в package.json сценарии Lerna, он все равно будет время от времени запускать сам по себе стандартный yarn install при внесении изменений и блокироваться семантическим пользовательским интерфейсом.

Есть ли способ обойти это?

Ответы [ 2 ]

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

На самом деле вы можете заставить autoInstall работать с пряжей, используя fomantic-ui, я просто запустил эти команды, и это сработало

$ yarn add fomantic-ui --ignore-scripts
$ yarn --cwd node_modules/fomantic-ui run install

semantic.json

-  "autoInstall": false,
+  "autoInstall": true,

Теперь каждый раз, когда запускается yarn install, он «пропускает» скрипт установки.

Убедитесь, что вы используете последнюю версию FUI

Существует также целоевопрос об этой проблеме на репозитории FUI https://github.com/fomantic/Fomantic-UI/issues/386

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

Один из способов - отредактировать packages/semantic-ui/package.json, удалив "semantic-ui" из dependencies и добавив скрипт "install": "node ./install.js". Затем создайте сценарий, который порождает npm install semantic-ui --no-save, только если пряжа обнаружена в среде (для предотвращения бесконечного цикла установки; проверьте process.env.npm_config_user_agent).

Это запутанный и подверженный ошибкам способ, однако, если присутствует semantic.json с "autoInstall": true, он автоматически установит Semantic UI и запустит задание gulp, сделав пользовательскую тему доступной для других пакетов на @monorepo/semantic-ui/dist/semantic.min.css.

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