Node.js Nodejs嵌套本机模块安装
我有一个web应用程序,它的简化结构如下所示Node.js Nodejs嵌套本机模块安装,node.js,module,installation,npm,node-gyp,Node.js,Module,Installation,Npm,Node Gyp,我有一个web应用程序,它的简化结构如下所示 . ├── app.js ├── native_modules │ └── my_module_addon │ ├── binding.gyp │ ├── index.js │ ├── node_modules │ ├── package.json │ ├── my_module_addon.cc ├── node_modules ├── package.json 我开发了本机模块插件
.
├── app.js
├── native_modules
│ └── my_module_addon
│ ├── binding.gyp
│ ├── index.js
│ ├── node_modules
│ ├── package.json
│ ├── my_module_addon.cc
├── node_modules
├── package.json
我开发了本机模块插件并将其链接。
我希望在从repo获取项目后,只需调用npm,然后自动调用node gyp rebuild,就可以轻松地安装我的本机插件
npm install
我的app 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"
}
}
{
"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 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"
}
}
{
"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"
当我调用npm install on web app时,问题出现了。我安装了所有模块并执行了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
my_module_addon@1.0.0 node_modules/my_module_addon
├── bindings@1.2.1
└── nan@2.2.0
您有用于本机模块的git repo吗?如果是,请尝试这种依赖关系样式
"my_module_addon": "git+ssh://admin@mydomain.com/~/repos/my_module_addon"
这应该可以与npm安装一起正常工作