Чтобы что-то импортировать через import from
надо чтобы в конечном файле был соответствующий export
(т.е. тот файл тоже должен быть модулем). Простой import
- это просто подключение скрипта как есть, всё равно что загрузка через <script>
.
npm
пакеты содержат разные версии дистрибутивов под разные способы подключения. Надо посмотреть куда указывает module
(а не main
) в package.json
и именно этот файл можно будет подключать через import from
.
Если module
в package.json
нет - значит библиотека не поддерживает современные es модули, увы, и придётся её использовать по-старинке(хотя лучше проверить глазами js файлы, изредка забывают указать). Именно такая ситуация наблюдается с lodash
, однако есть либа lodash-es
, которая решает эту проблему.
Также es модули - относительно новая система, до неё были commonjs модули, и они до сих пор используются в nodejs(как раз на них указывает main
в package.json
). Но из коробки без соответствующих либ они уже работать не будут.
Помимо esm и commonjs ещё полно всяких систем, но это уже отдельная тема.
P.S. Это был ответ на текст вопроса, ответ на заголовок - отдельная обширная и не простая тема и вряд ли вам нужен.