Я хочу сделать что - то подобное, так что установки npm install
также устанавливает package.json
из ../somelocallib
или что еще более важно его зависимостей.
"dependencies": {
"express": "*",
"../somelocallib": "*"
}
Эта функция была реализована в версии 2.0.0 npm. Пример:
{
"name": "baz",
"dependencies": {
"bar": "file:../foo/bar"
}
}
Любой из следующих путей также допустим:
../foo/bar
~/foo/bar
./foo/bar
/foo/bar
Локальный пакет будет скопирован в префикс ( ./node-modules
).
Положите somelocallib
как зависимость в вашем package.json
обычном:
"dependencies": {
"somelocallib": "0.0.x"
}
Затем запустите, npm link ../somelocallib
и npm установит версию, над которой вы работаете, как символическую ссылку .
app@0.0.1 /private/tmp/app
└── somelocallib@0.0.1 -> /private/tmp/somelocallib
Ссылка: ссылка (1)
npm dedup
для решения этой проблемы. npmjs.org/doc/cli/npm-dedupe.htmlnpm install <folder>
description содержит описание Установить пакет в каталоге как символическую ссылку в текущем проекте.Теперь вы можете указать локальные пути установки модулей Node
package.json
прямо в вашем компьютере . Из документов:источник
"bar": "file:///home/user/src/foo/bar"
node:onbuild
изображения только копируют текущий каталог и, таким образом, оставляют все внутри../foo
.npm install
из которой они находятся, или другой репозиторий git в локальной сети? Когда я пытаюсь выполнить вышеизложенное и установить npm из git + ssh, кажется, что он смотрит в каталог node_modules и не пытается перейти через git + ssh, хотя я так устанавливаю пакет верхнего уровня.Это работает для меня.
Поместите следующее в ваш файл package.json
источник
.gitignore
в папке модуля, создан,.npmignore
и при первом запуске я применил 777 рекурсивно ко всем папкам, кромеnode_modules
. Но да, он установил зависимости. Использование npm версии 1.4.14."dependencies": { "my-own-module": "file:../my-own-module" }
?npm link
состоит в том, что вам не нужноnpm install
каждый раз делать обновления своих зависимостей.Если вы хотите еще больше автоматизировать это, поскольку вы проверяете свой модуль на управление версиями и не хотите полагаться на разработчиков, запомнивших ссылку на npm, вы можете добавить это в свой раздел "scripts" package.json:
Это чувствует себя за пределами хакерской, но, похоже, «работает». Получил совет от этой проблемы npm: https://github.com/npm/npm/issues/1558#issuecomment-12444454
источник
postinstall
аpostupdate
вместоpreinstall
аpreupdate
?Вот как вы будете добавлять локальные зависимости:
npm install file:src/assets/js/FILE_NAME
Добавьте его в package.json из NPM:
npm install --save file:src/assets/js/FILE_NAME
Непосредственно добавьте в package.json вот так:
источник
Мастер-проект
Вот пакет.json, который вы будете использовать для мастер-проекта:
Там
./somelocallib
есть ссылка на папку библиотеки относительно главного проекта package.json .Ссылка: https://docs.npmjs.com/files/package.json#local-paths
Подпроект
Обработайте ваши библиотечные зависимости.
Помимо бега
npm install
вам нужно будет бегать(cd node_modules/somelocallib && npm install)
.Это известная ошибка в NPM.
Ссылка: https://github.com/npm/npm/issues/1341 (требуется более актуальная ссылка)
Примечания для докера
Проверьте ваш мастер
package.lock
и вашsomelocallib/package.lock
в ваш менеджер исходного кода.Тогда в вашем Dockerfile используйте:
Я использую скобки в своих
(cd A && B)
конструкциях, чтобы сделать операцию идемпотентной.источник
Я знаю, что это
npm install ../somelocallib
работает.Тем не менее, я не знаю, будет ли работать синтаксис, который вы показываете в вопросе
package.json
...К сожалению, doc, кажется, упоминает только URL как зависимость.
Попробуйте
file:///.../...tar.gz
, указав на zip локальную библиотеку ... и скажите нам, работает ли она.источник
Это сработало для меня: во-первых, убедитесь, что каталоги npm имеют правильного пользователя
Тогда ваш в вашем package.json ссылку на каталог
источник
npm install
.На самом деле, начиная с npm 2.0, теперь есть поддержка локальных путей (см. Здесь ).
источник
Любопытно ..... по крайней мере на Windows (мой npm - 3. что-то) мне нужно было сделать:
Когда я сделал это,
npm install ../module1 --save
это привело к абсолютным путям, а не относительным согласно документации.Я немного повозился и решил, что этого
../xxx
достаточно.В частности, я извлек модули локального узла, чтобы сказать d: \ build \ module1, d: \ build \ module2, и мой проект узла (приложение) в d: \ build \ nodeApp.
Чтобы «установить», я:
В package.json для module1 есть зависимость "module2": "../module2"; модуль2 не имеет локальной зависимости; nodeApp имеет зависимости "module1": "../module1" и "module2": "../module2".
Не уверен, что это работает только для меня, так как все 3 папки (module1, module2 и nodeApp) находятся на одном уровне .......
источник
Два шага для полного локального развития:
источник