Получение npm ERR!ENOTDIR: не каталог при установке пакета, который зависит от другого - PullRequest
0 голосов
/ 20 декабря 2018

Примечание: у меня последняя версия npm и узла.Я попробовал ответы, представленные в npm, ошибка установки ENOTDIR , но у меня не получилось.

Мне нужно установить модули 2 npm, полученные в виде пакетов .tgz на NodeRed

1. x.tgz
2. y.tgz

Я мог установить первый пакет, используя npm install path/to/x.tgz

Я использовал ту же команду npm install path/to/y.tgz, но получаю следующую ошибку.

malintha@malintha-VirtualBox:~/.node-red$ sudo npm install path/to/y.tgz 

npm ERR! path path/to/y.tgz/x.tgz

npm ERR! code ENOTDIR
npm ERR! errno -20
npm ERR! syscall stat
npm ERR! ENOTDIR: not a directory, stat 'path/to/y.tgz/x.tgz'

Согласно журналу ошибок, модуль y ищет внутри него файл x.tgz.Затем я проверил package.json из y.tgz артефакта.

Я вижу, что в нем есть x.tgz в качестве зависимости внутри него, но внутри него нет x.tgz.

 "dependencies": {
    "@abc/pqr": "file:x.tgz",
    "ajv": "^6.5.1",
    "debug": "^3.1.0"
  }

В соответствии с инструкциями, все будет в порядке, если я установлю x.tgz, а затем y.tgz.Я мог бы установить эти x и y некоторое время назад, но теперь я не могу установить их.

Что может быть основной причиной этой проблемы?Эта проблема связана с версиями npm и узлов?

1 Ответ

0 голосов
/ 07 января 2019

Я переписываю этот ответ после удаления своего старого ответа.Я протестировал его с и узлами v11.6.0 и npm v4.5.0-next.0 в Linux.

Чтобы установить y.tgz, я попытался, как показано ниже:

  1. Я скопировал обаTGZ файлы в том же каталоге.
  2. Я изменил package.json y.tgz, как показано ниже:

    "dependencies": {
        "@abc/pqr": "file:../x.tgz",
        "ajv": "^6.5.1",
        "debug": "^3.1.0"
    }
    

dependencies поддерживает file:+ относительный или абсолютный путь.

Таким образом, вы можете выбрать кого угодно в качестве условия развития.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...