Загрузите пакет npm из локального каталога, не копируя ненужные файлы / папки, такие как node_modules
Давайте представим, что мне нужно разработать пакет npm my-package, который должен быть импортирован и использован my-project.
При разработке my-package мне нужно установить и использовать другие пакеты из npm. В конце разработки my-package я собрал все соответствующие файлы в каталоге dist. Поскольку я не хочу, чтобы все файлы в папке node_modules были частью опубликованного пакета, я указываю в .gitignore (или .npmignore) исключить папку node_modules. Итак, окончательная структура папки my-package выглядит примерно так:
my-package
dist
... // all the code of the package to be distributed
node_modules
... // all the node modules
src
... // all source files
package.json
.gitignore
Теперь я публикую my-package в репозитории npm, а затем импортирую его в my-project с помощью команды npm i my-package
,
В результате такого импорта структура директории, в которой размещается my-project, выглядит примерно так:
my-project
... // stuff
node_modules
my-package
dist
... // all the code of the package to be distributed
src
... // all source files
package.json
Как и ожидалось, папка node_modules не импортируется в папку my-package.
Поскольку я являюсь разработчиком как my-package, так и my-project, во время разработки я хотел бы импортировать my-package из локального пути с помощью команды, которая может выглядеть следующим образом:
npm -i ../my-package
Если я продолжу так, результат, который я вижу, состоит в том, что все файлы и папки, хранящиеся в каталоге my-package, копируются в папку node_modules my-project, т.е. исключения.gitignore (или .npmignore) не рассматриваются. Чистый результат представляет собой такую структуру, как
my-project
... // stuff
node_modules
my-package
dist
... // all the code of the package to be distributed
node_modules
... // all stuff imported by my-package
src
... // all source files
package.json
... // any other file under my-package
Есть ли способ установить из локального пути только соответствующие файлы my-package, как это происходит, если пакет установлен из репозитория npm?
0 ответов
Сегодня у нас была такая же проблема. Разбираемся добавив в package.json локального пакета
“build”: “yarn run clean && yarn build-components && yarn pack”
А затем к проекту, который использует локальный пакет, который мы добавили к зависимостям package.json.
“yourpackage”: “file:../your-tgz.tgz”,
Надеюсь, это поможет
Примечание: если вы используете пряжу, у вас могут возникнуть проблемы с кешем.