2016-02-24 3 views
3

У меня есть веб-приложение, упрощенная структура которого выглядит так.Nodejs встроенный встроенный модуль install

. 
├── app.js 
├── native_modules 
│   └── my_module_addon 
│    ├── binding.gyp 
│    ├── index.js 
│    ├── node_modules 
│    ├── package.json 
│    ├── my_module_addon.cc 
├── node_modules 
├── package.json 

У меня есть встроенный аддон модуля и связанный с ним. Я бы хотел легко установить мой родной аддон после извлечения проекта из репо, просто вызвавшего npm, а затем автоматически вызвавшего rebuild node-gyp.

npm install 

Ну, мое приложение package.json:

{ 
    "name": "MyWebApp", 
    "version": "0.0.0", 
    "private": true, 
    "scripts": { 
    "start": "node ./bin/www" 
    }, 
    "dependencies": { 
    "body-parser": "~1.13.2", 
    "express": "~4.13.1", 
    "my_module_addon": "file:./native_modules/my_module_addon" 
    } 
} 

И мой модуль package.json:

{ 
    "name": "scs3reader_addon", 
    "version": "1.0.0", 
    "description": "My Awesome Addon", 
    "main": "index.js", 
    "scripts": { 
    "install": "node-gyp rebuild" 
    }, 
    "license": "MIT", 
    "dependencies": { 
    "bindings": "^1.2.1", 
    "nan": "^2.2.0" 
    }, 
    "gypfile": true 
} 

Чтобы связать мой родной аддон я добавляю его в зависимости

"my_module_addon": "file:./native_modules/my_module_addon" 

Проблема возникает, когда I c все npm install в веб-приложении У меня установлены все мои модули и запущен node-gyp, но понятия не имею, почему нет папки сборки и выходных файлов для собственного аддона.

> node-gyp rebuild 

    CXX(target) Release/obj.target/my_module_addon/my_module_addon.o 
    SOLINK_MODULE(target) Release/my_module_addon.node 
[email protected] node_modules/my_module_addon 
├── [email protected] 
└── [email protected] 

ответ

2

У вас есть git repo для встроенного модуля? Если вы - попробуйте этот стиль зависимостей

"my_module_addon": "git+ssh://[email protected]/~/repos/my_module_addon" 

Это должно работать правильно с npm install

+0

Да, тот работал. Благодаря! – take5v