Це спеціальне обмеження, яке додають розробники create-react-app. Він реалізований для того, ModuleScopePlugin
щоб забезпечити перебування файлів src/
. Цей плагін гарантує, що відносний імпорт із вихідного каталогу додатка не досягне його.
Ви можете відключити цю функцію, але лише після eject
роботи проекту create-react-app.
Більшість функцій та її оновлення приховані у внутрішній системі системи створення-реагування додатків. Якщо ви зробите це, у eject
вас більше не буде функцій та його оновлення. Тож якщо ви не готові керувати та конфігурувати додаток, що входить до налаштування веб-пакету тощо, - не робіть eject
операцій.
Грати за існуючими правилами (перейти на src). Але тепер ви можете знати, як видалити обмеження: виконайте eject
та видаліть ModuleScopePlugin
з конфігураційного файлу webpack .
Так як створити реагують-додаток v0.4.0 в NODE_PATH
змінному оточенні дозволяє вказати шлях для абсолютного імпорту. А оскільки v3.0.0 NODE_PATH
застаріло на користь встановлення baseUrl
в jsconfig.json
або tsconfig.json
.
Абсолютний імпорт дозволяє використовувати import App from 'App'
натомість import App from './App'
відносно значення, вказаного в базовій URL-адресі.
Ця функція спеціально корисна для монорепортажів або інших питань конфігурації, але не для імпорту зображень чи чогось іншого з public
папки.
Вміст public
папки буде розміщений у build
папці та доступний за відносною URL-адресою. Крім того, все імпортоване буде оброблено веб-пакетом і буде розміщено також у build
папці.
Якщо ви імпортуєте щось із public
папки, можливо, ця річ буде дублюватися у build
папці та буде доступна двома різними URL-адресами (або з різними способами завантаження), що врешті-решт погіршить розмір завантаження пакета.
Імпорт із папки src є кращим і має переваги. Все буде упаковано веб-пакетом у комплект із шматочками оптимального розміру та для найкращої ефективності завантаження .
Існують проміжні рішення, а саме система перемикання, яка дозволяє програмно змінювати конфігурацію веб-пакету. але видаленняModuleScopePlugin
плагін не є хорошим рішенням; краще додати повністю працюючі додаткові каталоги, схожі на src
.
Наразі create-react-app
не підтримує додаткові каталоги, крім src
кореневої папки. Це можна зробити, використовуючи псевдонім reakct-app-rewire
../public/images/logo_2016.png
Ви піднялися двічі, спочатку з папки компонентів, а потім із папки src.