Ссылка на библиотеки NodeJS из мест, отличных от node_modules, без использования относительного пути

Предполагая, что у меня есть 2 папки для библиотек NodeJS, т.е. «node_modules» и «somename_modules». Последняя — это папка, в которой хранятся проприетарные библиотеки, разработанные внутри компании.

Я знаю, что когда мы ссылаемся, используя «импорт» или «требовать», местоположение по умолчанию всегда указывает на путь, по которому папка «node_modules» находится в проекте.

Мой вопрос заключается в том, как добавить еще одно местоположение по умолчанию туда, где находится «somename_modules», чтобы при ссылке с использованием «import» или «require» в исходном коде ES6 он всегда проверял библиотеки как из «node_modules», так и из «somename_modules». ?

Пример:

import somefunc from 'somelib' //it will search in './node_modules/somelib' and './somename_modules/somelib'

person oatcrunch    schedule 17.05.2017    source источник


Ответы (1)


Я не думаю, что вы можете сделать это.

Но вы можете зарегистрировать свои внутренние библиотеки/модули в package.js (указав на папку somename_modules), чтобы они могли находиться в node_modules после завершения установки npm. И тогда операторы import/require могут работать нормально.

Например. Допустим, у вас есть имя модуля «mod1» в папке somename_modules. То есть: "/somename_modules/mod1"

Добавьте ниже зависимость в package.json:

"dependencies": {
  "mod1": "file:/somename_modules/mod1",
},

В этом случае mod1 должен следовать структуре npm, например иметь в нем файл package.json.

person ivp    schedule 17.05.2017