You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
import/no-internal-modules (со слов @Krakazybik) не может отследить место , откуда вызывается импорт
Из-за этого для плагина импорты типа entities/foo/ui/bar - то же, что и ./ui/bar внутри сущности foo
И из-за этого "весь умный линтинг" со стороны DX сводится к "ставь реэкспорты везде где можно, независимо от слоев"
Idea
Разделения на "уровни строгости" вряд ли удастся достичь в рамках конфига. Но хотелось бы тем или иным путем - отключить триггеринг на отсутствие внутренних реэкспортов
(да, это все еще считается плохой практикой, лезть во внутренности внутри внутренностей, но это не так критично, по сравнению с Slices PublicAPI и Segments PublicAPI)
Solution
Как вариант - заиспользовать no-restricted-imports как более общую альтернативу no-internal-modules
При этом попытаться переосмыслить, как можно запретить линтинг внутренностей слайсов, но чтобы это можно было делать внутри самих слайсов 🤔
Example
// describe("Slices PublicAPI")// 👎 Failimport{Issues}from"pages/issues/ui";import{IssueDetails}from"widgets/issue-details/ui/details"import{AuthForm}from"features/auth-form/ui/form"import{Button}from"shared/ui/button/button";import{saveOrder}from"entities/order/model/actions";import{orderModel}from"entities/order/model";import{TicketCard}from"@/entities/ticket/ui";// 👍 Passimport{Issues}from"pages/issues";import{IssueDetails}from"widgets/issue-details"import{AuthForm}from"features/auth-form"import{Button}from"shared/ui/button";import{orderModel}from"entities/order";import{TicketCard}from"@/entities/ticket";import{AuthForm}from"features/auth/form"import{Button}from"shared/ui";// describe("Allow internal deep-imports")// 👍 Pass (то же, что и Fail у SlicesAPI, но "место использования" тут влияет)/** @path widgets/issue-details/index.ts */import{IssueDetails}from"./ui/details"/** @path features/auth-form/index.ts */import{AuthForm}from"./ui/form"/** @path features/auth-form/ui/form/content.tsx */import*asauthModelfrom"../../model";/** @path shared/ui */import{Button}from"./button/button";/** @path entities/order/index.ts */import{saveOrder}from"./model/actions";import{orderModel}from"./model";import{TicketCard}from"@/entities/ticket/ui";
azinit
changed the title
LINT-75: (Feedback) Make public-api-boundaries less strict
LINT: (Feedback) Make public-api-boundaries less strict
Feb 4, 2022
Problem
import/no-internal-modules
(со слов @Krakazybik) не может отследить место , откуда вызывается импортИз-за этого для плагина импорты типа
entities/foo/ui/bar
- то же, что и./ui/bar
внутри сущностиfoo
И из-за этого "весь умный линтинг" со стороны DX сводится к "ставь реэкспорты везде где можно, независимо от слоев"
Idea
Разделения на "уровни строгости" вряд ли удастся достичь в рамках конфига. Но хотелось бы тем или иным путем - отключить триггеринг на отсутствие внутренних реэкспортов
(да, это все еще считается плохой практикой, лезть во внутренности внутри внутренностей, но это не так критично, по сравнению с Slices PublicAPI и Segments PublicAPI)
Solution
no-restricted-imports
как более общую альтернативуno-internal-modules
Example
Reference
#75 (comment)
The text was updated successfully, but these errors were encountered: