我正在构建一个安装二进制文件的npm软件包(libsbmlsim
),以后我将使用服务器端。
当我运行npm install
时,包构建得很好,但是,当我通过npm install libsbmlsim
将它用作不同项目中的依赖项时,它无法找到它所依赖的二进制文件之一( cmake
):
/bin/sh: ../../node_modules/cmake/bin/cmake: No such file or directory
make: *** [all] Error 127
npm ERR! libsbmlsim@0.0.2 install: `make`
npm ERR! `sh "-c" "make"` failed with 2
npm ERR!
npm ERR! Failed at the libsbmlsim@0.0.2 install script.
我怀疑它与我的设置有关,所以我会在这里解释一下。 libsbmlsim
依赖于其他一些二进制文件(cmake
和libsbml
),我也将其作为npm包捆绑,我将其作为依赖项或npm install cmake
等引入。我设置运行make
的每个包的package.json文件中的安装脚本,我有一个相应的Makefile
来下载二进制文件。
同样,当我将npm install
作为自己的项目运行libsbmlsim
但是当它作为依赖项安装时无法安装,即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
答案 0 :(得分:1)
除非您已将模块发布到npm注册表(npm publish
),否则您需要在开发过程中查看npm link
。
更多细节http://howtonode.org/introduction-to-npm(有点稀疏)