Size: a a a

2020 April 27

АН

Авроамэриканец Начрэл in БЭМ
Eugeniy World
Какую задачу ты решаешь не используя npm/git?
Я это уточнил, что бы было понимание, речь идёт не о npm пакетах.
Как выглядит библиотека общих компонентов в яндексе? Для каждой кнопки у вас отдельный репозиторий? Вряд ли, правда?

Скорее всего у вас в одном репозитории есть разные директории, каждая представляет собой компонент.

Понадобилось мне использовать общие компоненты в моём чистом проекте, я указываю репозиторий в качестве зависимости, npm его подгружает, потом я описываю в как использую один из компонентов в вашем репозитории. Потом создаю файл, где декларирую использование компонентов (которые не являются пакетами, а лишь директориями в репозитории, поэтому я говорю не о package.json). Собираю проект и при сборке нечто проверяет, есть ли такие компоненты вообще. И если нет - выдаёт ошибку. Например, если я указал что использую "button", а этот компонент был удалён или переименован в "base-button"
источник

EW

Eugeniy World in БЭМ
Сложно, ты просто говоришь, что указываешь репо в качестве зависимости, потом говоришь о подгрузке через npm, а потом говоришь обратное - не используешь package.json 🙁
источник

EW

Eugeniy World in БЭМ
Вообщем, если ты используешеь относительные зависимости на ФС, то при сборке проекта если их нет - то у тебя упадет сборка о том, что сборщик не может разрезолвить зависимость
источник

АН

Авроамэриканец Начрэл in БЭМ
Вот графически: пакет/компонент/файл-компонента
источник

EW

Eugeniy World in БЭМ
т.е. если у тебя было import A from '../../../a' а стало import A from '../../../base-a', то проект не соберется без рефакторинга
источник

EW

Eugeniy World in БЭМ
Даже если это будет пакет, то все равно сборка упадет, так что я пока не понимаю, в чем проблема
источник

EW

Eugeniy World in БЭМ
проверка на валидность будет
источник

АН

Авроамэриканец Начрэл in БЭМ
Eugeniy World
т.е. если у тебя было import A from '../../../a' а стало import A from '../../../base-a', то проект не соберется без рефакторинга
А это так работает? Я поставлю пакет packageName, который будет представлять собой директорию с компонентами, лежащими в своих директориях, например:
.
button/button.js
button/button.css
button/api.md


И в файле проекта сделаю так btn = require("packageName/button/button.js")?
источник

EW

Eugeniy World in БЭМ
Да, все так
источник

EW

Eugeniy World in БЭМ
Если у тебя модуль не будет доступен по этому пути, у тебя сборка упадет
источник

АН

Авроамэриканец Начрэл in БЭМ
А require реально позволяет указывать путь к конкретному файлу относительно пакета?
источник

VH

Vitaly Harisov in БЭМ
Авроамэриканец Начрэл
А require реально позволяет указывать путь к конкретному файлу относительно пакета?
require('../../node_modules/my-lib/button/button.js')
источник

АН

Авроамэриканец Начрэл in БЭМ
Vitaly Harisov
require('../../node_modules/my-lib/button/button.js')
Это просто относительный путь. А если мне нужно относительно пакета?
Мне предложили экспортировать компоненты в пакете, а что на счёт css файлов, например?
источник

АН

Авроамэриканец Начрэл in БЭМ
Vitaly Harisov
require('../../node_modules/my-lib/button/button.js')
Вы так подключаете компоненты? Кажется у БЭМ даже были какие-то deps файлы. Но я их не читал
источник

VH

Vitaly Harisov in БЭМ
Авроамэриканец Начрэл
Это просто относительный путь. А если мне нужно относительно пакета?
Мне предложили экспортировать компоненты в пакете, а что на счёт css файлов, например?
Внутри пакета используете относительные пути между компонентами. При использовании пакета используете путь к node_modules
источник

АН

Авроамэриканец Начрэл in БЭМ
Vitaly Harisov
Внутри пакета используете относительные пути между компонентами. При использовании пакета используете путь к node_modules
А если в пакете есть компоненты, которые используют компоненты из других пакетов?
источник

VH

Vitaly Harisov in БЭМ
Тогда путь с node_modules будет нормально работать как при разработке, так и при использовании этих пакетов
источник

АН

Авроамэриканец Начрэл in БЭМ
А ES импорты тоже так умеют?
источник

V

Valentin in БЭМ
Авроамэриканец Начрэл
А ES импорты тоже так умеют?
Угу
источник

Р

Роман in БЭМ
Авроамэриканец Начрэл
Это просто относительный путь. А если мне нужно относительно пакета?
Мне предложили экспортировать компоненты в пакете, а что на счёт css файлов, например?
Относительно пакета тоже работает
источник