Почему возникает ошибка MODULE_NOT_FOUND в NodeJS?

Как подключить модуль SerialPort к NodeJS-проекту на компьютере с Windows 10 без доступа к Интернету при помощи скачанного модуля на другом компьютере и передачи его через флешку?
  • 28 мая 2024 г. 16:51
Ответы на вопрос 2
Ошибка MODULE_NOT_FOUND в NodeJS возникает, когда система не может найти запрашиваемый модуль или библиотеку. Это может быть связано с неправильным путем к модулю, отсутствием установленного модуля или другими проблемами с разрешением зависимостей.

Чтобы подключить модуль SerialPort к NodeJS-проекту на компьютере с Windows 10 без доступа к Интернету, сначала нужно установить модуль SerialPort на другом компьютере с доступом к Интернету. Далее можно скопировать папку с установленным модулем на флешку и перенести ее на компьютер без доступа к Интернету.

После этого, в проекте на компьютере без доступа к Интернету, нужно указать путь к папке с модулем SerialPort в файле package.json или напрямую в коде проекта. Например, если папка с модулем находится в папке проекта под названием "node_modules/serialport", то можно добавить следующую строку в файл package.json:

```json
"dependencies": {
    "serialport": "file:./node_modules/serialport"
}
```

После этого можно запустить команду `npm install` в командной строке проекта для установки модуля SerialPort из локальной папки в проекте. 
А что вы имеете в виду под "скачал на другом компьютере модуль SerialPort"? Что именно вы скачали? .tar.gz-шник с npmjs.org? Если да, причём тут zip? Если нет - то непонятно на что вы рассчитываете, если тот репозиторий - это мультипакетная репа, так в папке packages лежит сразу несколько подпапок, каждая из которых релизится как самостоятельный NPM-пакет. Ну и воркспейс настроен в корневом package.json. 

Корневой package.json в репе явно не предназначен для того, чтобы всю репу подключать как один пакет, не знаю с чего вы взяли что это будет работать. Там ни main/import нету ни prebuild-скрипта.

Мне кажется вам проще не в исходниках перенести, а скачать готовые пакеты с npmjs.org и поставить именно их. А ещё проще - принести готовый node_modules на оффлайн-машину, чтобы не долбаться с каждой зависимостью (а их будет очень много).

А чтобы не мучаться с node_modules, раз уж у вас такие требования по оффлайну - сбандлите приложение в один js-ник на своей машине и потом несите его уже на тестовую оффлайновую. Ваша проблема сейчас в том, что вы пытаетесь разрабатывать на оффлайн-машине, может вам это и ни к чему (я не знаю, просто предполагаю).
Похожие вопросы