Git 当包是依赖项时,npm安装失败

Git 当包是依赖项时,npm安装失败,git,node.js,makefile,npm,Git,Node.js,Makefile,Npm,我正在构建一个npm包(libsbmlsim),用于安装我稍后将在服务器端使用的二进制文件 当我运行npm install时,该软件包构建得很好,但是,当我通过npm install libsbmlsim在不同的项目中将其用作依赖项时,它无法找到它所依赖的二进制文件之一(cmake): 我怀疑这与我的设置有关,所以我会在这里解释一下libsbmlsim依赖于其他一些二进制文件(cmake和libsbml),我也有捆绑的npm软件包,作为依赖项或npm install cmake等引入。我将每个软

我正在构建一个npm包(
libsbmlsim
),用于安装我稍后将在服务器端使用的二进制文件

当我运行
npm install
时,该软件包构建得很好,但是,当我通过
npm install libsbmlsim
在不同的项目中将其用作依赖项时,它无法找到它所依赖的二进制文件之一(
cmake
):

我怀疑这与我的设置有关,所以我会在这里解释一下
libsbmlsim
依赖于其他一些二进制文件(
cmake
libsbml
),我也有捆绑的npm软件包,作为依赖项或
npm install cmake
等引入。我将每个软件包的package.json文件中的安装脚本设置为运行
make
,我有一个相应的
Makefile
,可以下载二进制文件

同样,当我将
libsbmlsim
作为自己的项目运行
npm install
时,它可以工作,但当它作为依赖项安装时,它无法安装,即
npm install libsbmlsim

这是我的Makefile:

all:
    wget http://fun.bio.keio.ac.jp/software/libsbmlsim/downloads/libsbmlsim-1.1.0.tar.gz
    tar -xvzf libsbmlsim-1.1.0.tar.gz
    mkdir -p libsbmlsim-1.1.0/build
    cd libsbmlsim-1.1.0/build; export PATH=../../node_modules/cmake/bin:$(PATH); cmake .. -DCMAKE_INSTALL_PREFIX=../../libsbmlsim -DLIBSBML_INCLUDE_DIR=../../node_modules/libsbml/include -DLIBSBML_LIBRARY=../../node_modules/libsbml/lib64/libsbml.so
    cd libsbmlsim-1.1.0/build; export PATH=../../node_modules/cmake/bin:$(PATH); make -j4
    cd libsbmlsim-1.1.0/build; make install;
    rm -rf libsbmlsim-1.1.0
    rm *.tar.gz

源代码在这里可用:

除非您已将模块发布到npm注册表(
npm publish
),否则在开发过程中需要查看
npm链接


更多详细信息(有些稀疏)

除非您已将模块发布到npm注册表(
npm publish
),否则在开发过程中需要查看
npm链接


更多详细信息(有点稀疏)

您所说的“无法正确安装”是什么意思?错误消息是什么。我添加了错误消息和一些更详细的信息,我依赖于另一个包中的二进制文件,我调用
node\u modules/cmake/bin/cmake
,当我正常运行
npm install
时,它工作正常,但当它作为包从npm注册表安装时,我将安装脚本设置为
make
,它无法找到二进制文件,即使我已将其作为依赖项添加。根据错误,它无法找到cmake二进制文件。既然我不能在这里运行,那么在构建您认为的位置时cmake可用吗?这就是我被难倒的地方,所以当我在libsbmlsim repo中构建我的包时,我可以在自己上运行npm install,它将cmake二进制文件作为一个依赖项下载,然后在
node\u modules
中调用二进制文件来构建自己。但问题是,当我想使用libsbmlsim作为依赖项时,npm安装无法找到cmake二进制文件,即使它列在依赖项中。不确定它是否有用,但我这里有一个项目:你说的“无法正确安装”是什么意思?错误消息是什么。我添加了错误消息和一些更详细的信息,我依赖于另一个包中的二进制文件,我调用
node\u modules/cmake/bin/cmake
,当我正常运行
npm install
时,它工作正常,但当它作为包从npm注册表安装时,我将安装脚本设置为
make
,它无法找到二进制文件,即使我已将其作为依赖项添加。根据错误,它无法找到cmake二进制文件。既然我不能在这里运行,那么在构建您认为的位置时cmake可用吗?这就是我被难倒的地方,所以当我在libsbmlsim repo中构建我的包时,我可以在自己上运行npm install,它将cmake二进制文件作为一个依赖项下载,然后在
node\u modules
中调用二进制文件来构建自己。但问题是,当我想使用libsbmlsim作为依赖项时,npm安装无法找到cmake二进制文件,即使它列在依赖项中。不确定它是否有用,但我这里有一个项目:感谢您的回复,我确实将其发布到了npm注册表,这就是我试图在第二个应用程序中将其作为依赖项使用的方式。您不能在npm中真正使用redhat软件包。例如,在mac上不起作用。你为什么不能依靠普通制造呢?因为您正在使用的库需要cmake?我知道在包中包含二进制文件不是一个好主意,但我有一些不同的应用程序需要cmake来构建,我希望有一个解决方案,这样我可以轻松获得cmake二进制文件并使用npm构建。感谢您的回复,我确实将其发布到了npm注册表,这就是我试图在第二个应用程序中将其作为依赖项使用的方式。您不能在npm中真正使用redhat软件包。例如,在mac上不起作用。你为什么不能依靠普通制造呢?因为您正在使用的库需要cmake?我知道在包中包含二进制文件不是一个好主意,但我有一些不同的应用程序需要cmake来构建,我希望有一个解决方案,这样我就可以轻松获得cmake二进制文件并使用npm构建。
all:
    wget http://fun.bio.keio.ac.jp/software/libsbmlsim/downloads/libsbmlsim-1.1.0.tar.gz
    tar -xvzf libsbmlsim-1.1.0.tar.gz
    mkdir -p libsbmlsim-1.1.0/build
    cd libsbmlsim-1.1.0/build; export PATH=../../node_modules/cmake/bin:$(PATH); cmake .. -DCMAKE_INSTALL_PREFIX=../../libsbmlsim -DLIBSBML_INCLUDE_DIR=../../node_modules/libsbml/include -DLIBSBML_LIBRARY=../../node_modules/libsbml/lib64/libsbml.so
    cd libsbmlsim-1.1.0/build; export PATH=../../node_modules/cmake/bin:$(PATH); make -j4
    cd libsbmlsim-1.1.0/build; make install;
    rm -rf libsbmlsim-1.1.0
    rm *.tar.gz