Можно ли использовать собственное имя каталога вместо 'node_modules' при установке пакетов узлов?
Я создаю package.json
, я запускаю npm install
, он работает хорошо. Он создает каталог node_modules
в моей корневой папке (которую я могу изменить с помощью опции --prefix
). Тем не менее, мне не нравятся подчеркивания. Я хочу изменить имя каталога, в котором NPM загружает модули. Я хочу, чтобы он назывался nmods
или node-modules
или что-то в этом роде.
Bower может сделать аналогичную вещь, читая свойство directory
внутри файла .bowerrc
в текущем каталоге. Есть ли способ сделать то же самое с NPM?
Ответы
Ответ 1
Нет способа изменить это. Папка node_modules
на самом деле не относится к NPM, она является частью системы загрузки модулей ядра Node. Видно здесь, в module.js
.
Глобальное изменение, как вы упомянули, также может привести к поломке некоторых модулей, которые вы тоже используете, поскольку модули иногда являются пакетами со своими зависимостями, уже присутствующими в node_modules
, и изменение этого может привести к их поломке.
Ответ 2
Пряжа, вы можете легко достичь этого, добавив файл с именем .yarnrc
с таким содержанием:
# ./.yarnrc
--modules-folder lib
В следующий раз, когда вы запустите 'yarn', она создаст папку lib и установит туда пакеты, а не в node_modules.
Теперь, если бы только мы могли заставить 'npm install' быть такой же умной.
Ответ 3
Нет возможности изменить его в npm, однако есть возможность настроить его в менеджере пакетов пряжи.
yarn install --modules-folder <path>