как создать пакет npm с демо-приложением? - PullRequest
0 голосов
/ 05 июня 2018

Похоже, что для пакетов рекомендуется предоставлять демо-приложения определенного типа, поэтому мне просто интересно, каков самый чистый способ организации структуры файлов?

Я хочу иметь одно репозиторий github, содержащий мои опубликованныеМодуль NPM и простое демо-приложение.

В идеале я хотел бы, чтобы верхний уровень был таким:

package/
demo/

, и чтобы код только в package/ передавался в NPM.Я мог бы использовать опцию package.json files, например

files: [ 'package' ]

Но тогда весь код будет распространяться с этим префиксом пути, например,

node_modules/MyPackageName/package/index.js

Есть ли способ изменить путьпрефикс, поэтому он меняет каталог верхнего уровня и удаляет лишние package/, которые я использовал для организации файлов?

Конечно, у других людей есть способы сделать это, но я бы предпочел не использовать два репозитория - однодемо и один пакет.

Уточнение Я хочу иметь возможность установить пакет прямо из github, как своего рода «частный NPM для бедняков».Так что я не хочу просто публиковать из каталога «пакет».Я думаю, что используя URL-адреса github, вы можете указать ветвь для использования, но не подкаталог.

1 Ответ

0 голосов
/ 05 июня 2018

Вы можете сделать это с помощью переменной env NODE_PATH:

export NODE_PATH='yourdir'/node_modules

Ссылка

Если среда NODE_PATHДля переменной задан список абсолютных путей, разделенных двоеточиями, тогда Node.js будет искать эти пути для модулей, если они не найдены в других местах.

В Windows NODE_PATH отделяется точкой с запятой (;) вместо двоеточия.

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

NODE_PATH по-прежнему поддерживается, но теперь он менее необходим, поскольку экосистема Node.js имеетдоговорились о расположении зависимых модулей.Иногда развертывания, основанные на NODE_PATH, демонстрируют удивительное поведение, когда люди не знают, что NODE_PATH должен быть установлен.Иногда зависимости модуля изменяются, в результате чего при поиске NODE_PATH загружается другая версия (или даже другой модуль).

Кроме того, Node.js выполняет поиск в следующем списке GLOBAL_FOLDERS:

1: $ HOME / .node_modules 2: $ HOME / .node_libraries 3: $ PREFIX / lib / node Где $ HOME - домашний каталог пользователя, а $ PREFIX - сконфигурированный Node.js node_prefix.

Этив основном по историческим причинам.

Настоятельно рекомендуется размещать зависимости в локальной папке node_modules.Они будут загружены быстрее и надежнее.

...