WedX - журнал о программировании и компьютерных науках

Почему модули npm, установленные глобально, не могут быть перечислены?

Я бегу:

npm ls -g 

И ничего не показывает.

Я почти уверен, что у меня установлены модули. Если я бегу:

ls -1 usr/local/lib/node_modules/

Результат:

express
forever
fstream
fstream-ignore
generator-keystone
http-server
keystone
node-debug
node-gyp
node-inspector
npm
yo

Команда отлично работает для локально установленных модулей.

Добавление результатов npm config ls -l может помочь больше.

; cli configs
long = true
user-agent = "npm/3.3.12 node/v4.1.2 darwin x64"

; default values
access = null
also = null
always-auth = false
bin-links = true
browser = null
ca = null
cache = "/Users/ash/.npm"
cache-lock-retries = 10
cache-lock-stale = 60000
cache-lock-wait = 10000
cache-max = null
cache-min = 10
cafile = undefined
cert = null
color = true
depth = null
description = true
dev = false
dry-run = false
editor = "vi"
engine-strict = false
fetch-retries = 2
fetch-retry-factor = 10
fetch-retry-maxtimeout = 60000
fetch-retry-mintimeout = 10000
force = false
git = "git"
git-tag-version = true
global = false
globalconfig = "/usr/local/etc/npmrc"
globalignorefile = "/usr/local/etc/npmignore"
group = 20
heading = "npm"
https-proxy = null
if-present = false
ignore-scripts = false
init-author-email = ""
init-author-name = ""
init-author-url = ""
init-license = "ISC"
init-module = "/Users/ash/.npm-init.js"
init-version = "1.0.0"
json = false
key = null
link = false
local-address = undefined
loglevel = "warn"
; long = false (overridden)
message = "%s"
node-version = "4.1.2"
npat = false
onload-script = null
only = null
optional = true
parseable = false
prefix = "/usr/local"
production = false
progress = true
proprietary-attribs = true
proxy = null
rebuild-bundle = true
registry = "https://registry.npmjs.org/"
rollback = true
save = false
save-bundle = false
save-dev = false
save-exact = false
save-optional = false
save-prefix = "^"
scope = ""
searchexclude = null
searchopts = ""
searchsort = "name"
shell = "/bin/bash"
shrinkwrap = true
sign-git-tag = false
strict-ssl = true
tag = "latest"
tag-version-prefix = "v"
tmp = "/var/folders/3r/9ljlgw6j7m53hwxm_3c3gdkw000106/T"
umask = 18
unicode = true
unsafe-perm = true
usage = false
user = 501
; user-agent = "npm/{npm-version} node/{node-version} {platform} {arch}" (overridden)
userconfig = "/Users/ash/.npmrc"
version = false
versions = false
viewer = "man"
12.11.2015

  • Если вы устанавливаете пакет с флагом -g, попадает ли он в ваш каталог /usr/local/lib/node_modules/? Или он устанавливается в другом месте? 12.11.2015
  • Да. Я только что установил socket.io, чтобы попытаться выяснить, и он был помещен в эту папку. 13.11.2015
  • npm ls -g должно работать нормально. Похоже на некоторую конфигурацию экологической проблемы. 13.11.2015
  • Я где-то читал, что в prefix = "/usr/local" может быть какое-то неправильное указание, которое должно быть установлено в usr/local/lib/node_modules/, но я не могу найти файл, в котором это указано. Предполагается, что это файл .npmrc. 13.11.2015
  • Ok. Нет необходимости искать файл, потому что в любом случае можно изменить префикс с помощью: npm config set prefix /usr/local/ -g, но на самом деле ничего не меняется, и модули по-прежнему не отображаются. 13.11.2015

Ответы:


1

Поэтому я решил проблему жестоким способом, но в конце ответа вы найдете предложения быть более бережным к вашей машине.

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

Здесь — прямая ссылка на скрипт предложенный в предыдущем посте.

В остальном вы уже должны знать, как установить Node.

Извлеченный урок: всегда используйте nvm и подумайте пару раз, прежде чем устанавливать/удалять с параметром -g.

Теперь npm ls -g --depth=0 работает как шарм:

/usr/local/lib
├── [email protected]
├── [email protected]
└── [email protected]

Меня тогда заинтересовало изменение конфигурационного файла.

Я снова побежал: npm config ls -l

Начинается аналогично:

; cli configs
long = true
user-agent = "npm/2.14.7 node/v4.2.2 darwin x64"

Затем идут эти новые строки, которые отсутствовали:

; globalconfig /usr/local/etc/npmrc
prefix = "/usr/local"

И далее остается прежним:

; default values
access = null
[..]

Таким образом, более подходящим ответом будет следующий.

В конце концов я не проверял это, но если вы установили все по умолчанию, в /usr/local/etc есть файл npmrc. Чтобы указать правильное место, вы должны запустить:

npm config set globalconfig /etc/npmrc

Подробнее о globalconfig

Надеюсь, это все, ребята.

13.11.2015
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]