2016-12-05 2 views
0

мне нужна помощь со следующей ситуацией:Загрузить NPM зависимости к серверу

На данный момент я работаю с Maven и Spring для того, чтобы сделать веб-приложение. Моя команда работала над загрузкой зависимостей для разных фреймворков, но теперь я хочу использовать npm, чтобы упростить управление зависимостями.

Когда я запускаю npm install, он загружает зависимости локально, но идея состоит не в том, чтобы загрузить папку node_modules в git или в web, а в том, чтобы иметь файл package.json и загружать их вручную на каждом компьютере. Я знаю, что приложение сжато в военном файле (я не знаю, когда и как, когда я начал работать здесь, что работал так), а когда он сжат, он загружает зависимости maven (или это то, что я понял). Я хочу сделать то же самое с зависимостями npm, идея состоит в том, чтобы сконфигурировать где-нибудь, что он должен запустить npm install перед сжатием всего приложения.

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

Спасибо!

ответ

0

Предполагая, что для войны используется плагин Maven war - вы не можете вызывать команду npm из него.

Примечание: при использовании целей войны предполагается, что этап компиляции уже выполнен. Плагин WAR не несет ответственности за компиляцию java-источников или копирование ресурсов.

https://maven.apache.org/plugins/maven-war-plugin/usage.html

Как обходной путь для конечной точки можно установить требуемые модули по npm install -g, если ваш сервер имеет доступ к НПМ репо. В противном случае вам нужно скопировать node-modules вручную.

Не забывайте о разрешениях.

+0

Как узнать, имеет ли сервер доступ к репиту npm? Это зависит от сервера? В случае, если у него есть, где мне нужно написать команду «npm install -g»? В случае, если у него нет доступа, когда я загружаю папку node_modules, иногда загружаюсь с определенным корнем на моем компьютере, и это может не работать на сервере. Есть ли способ автоматически изменить его на относительное местоположение? Спасибо! – Motomine

+0

'-g' будет выполнять установку пакетов по всему миру на экземпляре npm. поэтому они будут доступны во всем мире, несмотря на то, что 'node-modules' будут отсутствовать. но если версии или зависимости будут меняться внутри вашего проекта - он не будет автоматически установлен на стороне сервера. должен быть запущен так же, как 'npm install' вдоль стороны' package.json' –

+0

что вы имеете в виду с глобал? Он будет автоматически искать package.json? Я не мог этого понять. Если я обновляю версии в package.json, не будет обновляться на стороне сервера? Какая полезная часть узла, если это не работает? Благодарю вас и прошу прощения за такие вопросы! – Motomine