Включите пакет для некоторых библиотек в рабочее пространство Nrwl / Nx - PullRequest
0 голосов
/ 11 октября 2018

Кажется, что в рабочем пространстве Nrwl / Nx есть только один файл package.json.Теперь, если у нас есть несколько приложений, каждое из которых зависит от разных пакетов, тогда мы должны включить все эти пакеты в один файл package.json, и не увеличит ли это размер всех приложений при их создании?(предположительный файл vendor.js).

Например, если app-1 зависит от d3, а app-2 зависит от библиотек ag-grid, не будут ли обе эти библиотеки включены для app-1 и app-2 без необходимости?Когда пользователь app-1 посещает приложение, для него не нужно загружать ag-grid.

Правильно ли я понимаю или я что-то упустил?Если мое предположение верно, есть ли способ решить эту проблему?

Как насчет лениво загруженных библиотек?Например, для библиотеки «admin», которая доступна только некоторым пользователям (с ролью администратора), могут потребоваться определенные графические пакеты, которые не нужно загружать для всех пользователей.

Спасибо.

1 Ответ

0 голосов
/ 11 октября 2018

Одним из преимуществ использования nrwl / nx является отдельный файл package.json.Использование одного package.json прекрасно, потому что когда вам нужно обновить что-то вроде rxjs, вам нужно сделать это только один раз, и вся ваша база кода будет работать с тем же набором зависимостей.

Это не влияет на размерскомпилированного кода, потому что приложение будет включать в себя только тот код, который оно использует, благодаря пакетированию веб-пакетов и тряске деревьев.Таким образом, нет риска появления D3 в комплекте для приложения, которое его не использует.В действительности вы можете иметь каждый пакет npm, указанный в вашем package.json, и это не повлияет на размер вашего пакета.

nrwl / nx на 100% предназначен для использования только одного файла package.json.Не пытайтесь разбить его, если вы используете nx.

...