Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разбиение на модули в JS (https://javascript.ru/forum/misc/81644-razbienie-na-moduli-v-js.html)

JetStar 04.01.2021 03:51

Разбиение на модули в JS
 
У меня есть проект, он начал довольно сильно разрастаться и встал вопрос о том, что бы разбить все его элементы по модулям.
У меня используется axios, lodash и ещё пара подобных библиотек.
Я хочу разбить всё на модули и импортировать в 1 условный app.min.js
В случае разбиения на модули мне нужно отдельно в каждый модуль имортировать эти библиотеки, ведь так?
Если так, то как будет собираться всё это? если у меня 5 раз в 5 модулях подключается lodash, это это же не означает, что на выходе у меня будет 5 копий lodash в разных модулях, верно? Просто всё будет ссылаться к 1 объекту, т.е. будет только 1 lodash у меня в конечном файле, так?

Aetae 04.01.2021 04:02

Так.




:)
Более того: не обязательно импортировать ту же lodash целиком, можно импортировать только нужные функции, т.е. не:
import _ from 'lodash'
, а:
import { get, map } from 'lodash'
, и тогда в собранный бандл попадут только они(и те от которых они зависят, само собой).

voraa 04.01.2021 09:38

Цитата:

Сообщение от JetStar
Просто всё будет ссылаться к 1 объекту, т.е. будет только 1 lodash у меня в конечном файле, так?

Именно так

JetStar 04.01.2021 10:39

Спасибо большое!

JetStar 04.01.2021 22:51

Всплыл ещё 1 вопрос:
у меня есть файл mainPage.min.js , в него подключаю модуль
import navigation from './modules/navigation';

В модуль navigation подключаю сабмодуль getCoords, который лежит с ним в папке modules на 1 уровне вложенности
Подключается он в navigation вот так
import { getDocumentScroll, getCoordsElem, getCoordsElemByParent } from './getCoords'
,однако gulp выдаёт ошибку мол нет модуля в папке
Error: module "./modules/getCoords" not found from

Хотя файл есть в папке. В где у меня ошибка?
вот структура папок:
mainPage.min.js
->modules
--navigation.js
--getCoords.js

Aetae 05.01.2021 01:09

Для начала проверь точно ли совпадают имена(русская С?). Если да - какие-то глюки gulp'a, тут я тебе не помощник: как начал юзать webpack так и ничего иного мне не надо.)

JetStar 05.01.2021 02:29

Aetae,
Тогда буду галп колупать, спасибо.
ВебПак можно настроить так, что бы не 1 js файл на выходе был? Просто мне нужно 3 файла после сборки

Aetae 05.01.2021 04:24

У вебпака обычно как минимум 2 файла vendor с либами и app с твоим кодом.
Если нужно несколоко разных файлов для разных страниц, за это отвечают entry - можно задавать сколько нужно.


Часовой пояс GMT +3, время: 12:04.