2016-08-04 2 views
1

Я работаю над частным пакетом NPM, который я предоставляю разработчикам, которые используют наш API. По различным причинам (решивших руководством), пакет на нашем хранилище НПМ (Sonatype Nexus) имеет следующую структуру папок:Сделайте мой пакет NPM доступным в версиях источника и dist

+- build 
| |- browser.min.js 
| \- node.min.js 
|- docs 
| \ ... 
|- package.json 
\- README.md 

файлы JS в каталоге build компилируются из фактического кода пакета.

Также в состав встроенного пакета включены конкретные версии зависимостей, на которые полагается пакет (например, модифицированная версия WildEmitter).

Для обеспечения легкой публикации, то package.json имеет в нем следующем:

... 
    "main": "build/node.min.js", 
    "browser": "build/browser.min.js", 
    "files": [ 
    "build/*.js", 
    "docs/*", 
    "README.md" 
    ], 
    ... 

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

(в сторону, я знаю, что это не лучший способ упаковать вещи, но мы не можем изменить, что так легко в этот момент, если у нас нет никакого другого выбора.)

Я предположил, что I сможет вытащить пакет из нашего частного репозитория Git, который предоставит мне весь код пакета.

Однако, НПМ все еще читает files раздел package.json, когда он загружает из Git, так что это делает git clone, а затем удаляет любые файлы, которые не присутствуют в files массиве, оставив меня с каталогом, который содержит только docs/* , package.json, и README.md.

Есть ли способ получить весь код пакета из Git и сохранен?

+0

Связанный, но я не думаю, что он дублируется (потому что здесь я управляю обеими сторонами и * может * модифицировать пакет, если необходимо): http://stackoverflow.com/questions/35446639/install-ignored-files-with- НПМ –

ответ

0

В конце концов, я решил изменить процесс сборки, чтобы сделать это проще.

Вместо строительства только scipts в каталог build и упаковки, начиная от хранилища корневой директории, я изменил мой сценарий сборки также копировать README.md, package.json и docs/* в каталог build, а затем к cd в этот каталог сделайте npm publish.

Таким образом, package.json может просто сказать, что включить все файлы в каталог.

Смежные вопросы