2016-09-24 2 views
1

Я строю свой модуль первого узла. Внутри модуля есть демонстрационное приложение. Демонстрация полезна только во время разработки. Где мы размещаем демо-зависимости?Где мы храним демо-зависимости приложений при создании модуля?

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

Итак, при разработке модуля, содержащего собственное демо-приложение, где можно установить зависимости приложения демо?

  • dependencies?
  • devDependencies?
  • someWhereElse?

Это модуль: https://github.com/shaunluttin/aurelia-open-id-connect

Вот высокоуровневый график зависимостей в моем модуле. Места в () основаны на ответе из Пранеша.

demo 
    third-party-modules (optionalDependencies) 
    my-module 
    third-party-modules (dependencies) 

Когда кто-то устанавливает наш модуль, мы хотим, чтобы они только рушить my-module/third-party-modules. Когда кто-то клонирует наше репо, мы хотим, чтобы они также смогли снести demo/third-party-modules.

ответ

1

В большинстве случаев демонстрационные приложения будут зависеть от модуля, который вы создаете, aurelia-open-id-connect в вашем случае. Если у вас есть другие зависимости для демонстрационного приложения, отличного от вашего модуля, оно должно находиться под optionalDependencies.

См this

Эти модули должны быть установлены с -O опцией. Пример: npm i express -O

+0

У меня возникли проблемы с пониманием того, как демо-приложение будет зависеть от самого модуля. Например, вот моя структура модуля: https://github.com/shaunluttin/aurelia-open-id-connect/tree/master/src. Модуль находится внутри 'src/open-id-connect /', а демонстрационное приложение - все остальное внутри 'src /'. При публикации модуля 'dist' включает только содержимое' src/open-id-connect': https://github.com/shaunluttin/aurelia-open-id-connect/tree/master/dist/amd Я структурирую свое демо-приложение в нетрадиционной форме? –

+1

Примеры не будут зависимыми, они будут ** зависимыми ** от модуля. Взгляните на https://github.com/expressjs/express/blob/master/examples/auth/index.js#L5. Эти примеры зависят от модуля (экспресс) –

+0

Хорошо. Это имеет смысл для меня, что демо не является зависимостью. Это понятно. Демо, однако, имеет свои собственные зависимости, и мне интересно, где их хранить. –

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