当包是依赖项时,npm安装失败
我正在构build一个npm包( libsbmlsim
),用于安装我将在以后使用服务器端的二进制文件。
当我运行npm install
,这个软件包就可以正常工作了,但是当我通过npm install libsbmlsim
把它作为一个不同项目的依赖npm install libsbmlsim
,它无法find它所依赖的一个二进制文件( 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
等。我将每个包的package.json文件中的安装脚本设置为运行make
,我有一个相应的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
来源可在这里: https : //github.com/stanley-gu/libsbmlsim
除非你已经将模块发布到npmregistry( npm publish
),否则你需要在开发过程中查看npm link
。
更多细节http://howtonode.org/introduction-to-npm (有点稀疏)