Я хотел бы установить и требовать «fs», «path» и «js-yaml» в Windows 10, но только «js-yaml» привел к «Ошибка не может найти модуль» - PullRequest
0 голосов
/ 13 сентября 2018

Приятно познакомиться.Я новичок в компьютерах, и в эти дни я получил удовольствие от ваших сложных вопросов и ответов здесь.Это мой первый вопрос в StackOverFlow.Пожалуйста, прости меня, когда я использую необычные нотации и неестественный английский.

Я потратил несколько часов, чтобы установить внешние модули в Node-Red (Node.js?).Я хотел бы установить три --- «fs», «path» и «js-yaml» - в Windows 10, но моя проблема в том, что только «js-yaml» привел к сбою, хотя другие могут быть успешноустановлен и используется.
Я попробовал следующую команду…

C:\windows\system32>npm –g install js-yaml
C:\windows\system32>npm –g install fs
C:\windows\system32>npm –g install path

Эти команды создали модули, но только js-yaml вел себя иначе, чем две другие.После добавления соответствующих ключей и свойств, таких как «fs: require ('fs')», в functionGlobalContext в (C: ~~~ / .node-red /) setting.js, я попытался запустить Node-Red.Когда я приказал

C:\windows\system32> node-red

, он вернул следующие ошибки только на js-yaml, а узел-красный не открылся.Он работал успешно, когда я удалил термин «jsyaml: require ('js-yaml')» из setting.js.

Error loading C:~~~/.node-red/setteing.js
Error cannot find module “js-yaml”

Я перечислю отчеты, которые могут быть связаны с моей проблемой.
* Два других (fs, path) создали папки только в каталоге «C: ~~~ / npm / node-modules», но js-yaml создал другой файл js-yaml, кроме того, в «C: ~~~»/npmuration.
* Возможно, я пробовал команду «npm link» в каждом каталоге перед установочной командой.И ссылка npm [имя модуля] в каталоге C: ~~~ / .node-red.
* Я загрузил внешний модуль (node-red-contrib-postgres) из github, который может иметь fs.js и path.js??
* Это не изменило результат для добавления термина «js-yaml» в «зависимость» в (C: ~~~ / .node-red /) package.json.
* Я добавляю C:~~~ / npm.node_modules (получено командой "npm -g bin") в переменную окружения "PATH"

1 Ответ

0 голосов
/ 14 сентября 2018

Я бы посоветовал вам установить их локально, а не глобально.

Когда вы устанавливаете модули npm глобально, используя -g, они сохраняются в %APPDATA%\npm, что зависит от пользователя и к которому Node Red может не иметь доступа, в зависимости от того, как он запускается.

Посмотрите Работает в Windows в разделе «Общий доступ к узлу между пользователями» и npm-папок для получения дополнительной информации.

В качестве альтернативы, вы также можете указать фактический путь в functionGlobalContext, который может работать для вас. По линиям:

js-yaml: require(‘/the/path/to/js-yaml’)
...