2016-01-21 2 views
4

Например, если в моем package.json, у меня есть это:НПМ установки не вызывает столпотворение строить, если зависимости не от НПМ

"dependencies": { 
    "cacheman": "2.1.0" } 

это работает, и она будет срабатывать скрипт здания внутри Cacheman когда это Я делаю npm install.

однако, если я это сделать:

"dependencies": { 
    "cacheman": "https://github.com/cayasso/cacheman.git" } 

он не будет работать. Установка npm не приведет к запуску процесса сборки для кешмана.

Почему это так?

ответ

4

Сценарий, на который вы ссылаетесь, представляет собой предварительно опубликованный скрипт, который запускается до публикации модуля npm в реестре npm. Проверьте здесь package.json#L9

Экстракт показано здесь

"scripts": { 
    "test": "make test", 
    "prepublish": "make" 
} 

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

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

"scripts": { 
    "test": "make test", 
    "prepublish": "make", 
    "postinstall": "make"//Added postinstall 
} 

Проверить examples в НПХ сценариях документации для получения более подробной информации.

+0

спасибо за объяснение. :) – murvinlai

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