Ответы пользователя по тегу npm
  • Что делать, если сторонний модуль использует слишком длинные имена?

    keksmen
    @keksmen Автор вопроса
    Just a programmer
    Проблема была решена путём копирования из dependencies используемого модуля некоторые модули в свой dependencies.

    Было:
    package.json
    {
      "dependencies": {
        "js-yaml": "^3.3.1",
        "yards-cli": "0.1.5"
      }
    }

    node_modules/module_name/package.json
    {
      "dependencies": {
        "тяжелый-модуль-с-длинными-именами": "0.0.7"
      }
    }


    Стало:
    package.json
    {
      "dependencies": {
        "js-yaml": "^3.3.1",
        "yards-cli": "0.1.5",
        "тяжелый-модуль-с-длинными-именами": "0.0.7"
      }
    }

    node_modules/module_name/package.json
    {
      "dependencies": {
        "тяжелый-модуль-с-длинными-именами": "0.0.7"
      }
    }


    Путём наблюдения было выяснено, что если некоторые модули из вашего dependencies и dependencies используемого модуля совпадают по имени и версии, то npm понимает, что нет смысла дважды устанавливать его т.к. используемый вами модуль сможет без проблем использовать перенесенный модуль следующим путем:
    require('module_name');

    Использовать осторожно: некоторые модули могут использовать файлы используемых модулей некорректно:
    require('./node_modules/module_name/path/to/file.js');

    Хотя, по факту, следующий код будет эквивалентным и более работоспособным в сложившейся ситуации:
    require('module_name/path/to/file.js');
    Ответ написан
    Комментировать
  • В чем разница между --save-dev и --save?

    keksmen
    @keksmen
    Just a programmer
    Как верно подметил ruddy22 в production версию продукта попадают не все модули, использующиеся при разработке. К примеру, если вы хотите минифицировать модуль, то, скорее всего будете использовать уже готовые продукты, которые в его использовании не пригодятся.

    Если совсем коротко, то модули из devDependencies не будут установлены в production. Вот и всё.
    Ответ написан
    2 комментария