Узлу 10 не удается установить зависимости, перечисленные в пакете. json - PullRequest
0 голосов
/ 06 апреля 2020

Ключевые моменты:

  1. Требование: устанавливаемый пакет npm install -g (так как это потребуется для нескольких приложений и фоновых / пакетных процессов)
  2. Пакет является частью ( в настоящее время публикуется c) организация и в настоящее время доступна как: @asux.org/cli-npm.
    Имеет 2 популярных зависимости: "мел" и "командир"

Проблема:
1. npm install -g @asux.org/cli-npm НЕ выполняет автоматически npm install -g <dependencies..>
2. it на самом деле помещает зависимости в (npm root -g)/@asux.org/cli-npm/node_modules
3. В моем коде require("commander") завершается с очевидной ошибкой.
Я даже пытался проверить его вручную в командной строке node.

Error: Cannot find module 'commander'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
    at Function.Module._load (internal/modules/cjs/loader.js:520:25)
    at Module.require (internal/modules/cjs/loader.js:650:17)
    at require (internal/modules/cjs/helpers.js:20:18)

Мой обходной путь включает в себя два этапа:
1. Установите зависимости вручную после установки пакета. Глупо! Зачем беспокоиться об указании зависимостей в пакете. json, когда используется что-то, называемое "Node Package Manager "!
2. Вручную go вокруг настройки export NODE_PATH=(npm root -g) (к вашему сведению: не может отображаться обратные пометки здесь).

К вашему сведению: установка и удаление работает чисто.

ВОПРОСЫ:

  1. ТОЛЬКО "правильный" способ .. связать все (включая зависимости) вместе? Если да, то какие-нибудь указатели?
  2. Любой другой "правильный" способ автоматически установить все зависимости?
  3. Как правильно установить Node + NPM, так что мне не нужно делать что-то столь фундаментально и фундаментально c, как: export NODE_PATH=(npm root -g)? (К вашему сведению: здесь не могут быть пометки).

Вот пакет. json

{
    "name": "@asux.org/cli-npm",
    "version": "1.9.0",

    "private": false,

    "publishConfig": {
        "access": "public",
        "tag": "latest"
    },
    "dependencies": {
        "chalk": "*",
        "commander": "2.20.0"
    },
    "engines": {
        "node": ">=10.2.2"
    },
..

К вашему сведению: "DEFAULT" npm root -g производит (в пределах /tmp текущая рабочая папка):

> module.paths
[ '/private/tmp/repl/node_modules',
  '/private/tmp/node_modules',
  '/private/node_modules',
  '/node_modules',
  '/Users/Sarma/.node_modules',
  '/Users/Sarma/.node_libraries',
  '/usr/local/Cellar/node/10.2.1/lib/node' ]

Я надеюсь, что это действительно очень глупо, что я делаю .. Потому что в противном случае это означает, что весь package.json / npm МЕХАНИЗМ слишком глупо, когда кто-то объясняет другим, что происходит, черт возьми.

...