npm не предоставляет никакой другой встроенной функции для достижения этой цели, поэтому требуется специальное решение.
Если вы действительно не хотите использовать .npmignore
, чтобы сохранить каталог src
в опубликованном пакете, подумайте об использовании pre
и post
перехватчиков в вашем сценарии npm вместо.
Соответствующие крючки:
prepublishOnly
: запуск ДО ТОГО, как пакет подготовлен и упакован, ТОЛЬКО на npm publish
...
postpublish
: запуск ПОСЛЕ опубликования пакета.
Для * nix платформ
Добавьте сценарий prepublishOnly
в раздел scripts
вашего package.json , который перемещает каталог src
в другое место за пределами каталога вашего проекта перед публикацией.
Также добавьте сценарий postpublish
, который перемещает каталог src
обратно в каталог проекта после завершения публикации.
Запустите npm publish
(как обычно), чтобы опубликовать ваш пакет.
Например:
package.json
...
"scripts": {
"prepublishOnly": "mv src/ ../",
"postpublish": "mv ../src .",
...
},
...
Примечание: Вам нужно будет убедиться, что в каталоге, в котором вы выбрали временное перемещение каталога src
, с помощью сценария prepublish
не существует другой папки / каталога src
.
Кроссплатформенность:
Для кроссплатформенного решения рассмотрите возможность использования shx . Этот пакет включает в себя портативную команду mv
. В этом случае настройте ваши сценарии prepublish
и postpublish
примерно так:
package.json
...
"scripts": {
"prepublishOnly": "shx mv src/ ../",
"postpublish": "shx mv ../src .",
...
},
...